0
我只是試圖更新自定義控件(其中包含一箇中繼器)從一個下拉列表onchange事件,觸發一些JavaScript。更新包含中繼器自定義控制與javascript中的updatepanel問題
所以下拉列表和UpdatePanel的是這樣: -
<asp:UpdatePanel runat="server" ID="pnlPanelStageBandLetterTemplate" Visible="false" UpdateMode="Conditional">
<ContentTemplate>
<asp:DropDownList runat="server" ID="ddlBand">
<asp:ListItem Selected="True" Text="1" Value="1" />
<asp:ListItem Text="2" Value="2" />
<asp:ListItem Text="3" Value="3" />
<asp:ListItem Text="4" Value="4" />
<asp:ListItem Text="5" Value="5" />
<asp:ListItem Text="6" Value="6" />
</asp:DropDownList>
<panelStageLetters:PanelStageBandLetterTemplate id="psbltPanelStageBandLetterTemplate" runat="server">
</panelStageLetters:PanelStageBandLetterTemplate>
</ContentTemplate>
下拉ddlband呈現有以下: -
ddlBand.Attributes.Add("onchange", "changeCutBand('" + pnlPanelStageBandLetterTemplate.ClientID + "')");
ddlBand.ID = "ddlBand";
當選擇了下拉列表,它觸發以下代碼: -
function changeCutBand(panelID) {
var cbc = ($(".cutBandChanger")[0]);
val = cbc.value;
var wsid = getQueryVariable('wsid');
if (val != "0") {
$.get("changecutband.ajax?action=changecutband&newcutmethod=" + val + "&wsid=" + wsid);
var panelID = document.getElementById('ctl00_ContentPane_ctl01_pnlPanelStageBandLetterTemplate');
var ddID = document.getElementById('ctl00_ContentPane_ctl01_ddlBand');
__doPostBack(panelID, val);
}
}
這調用了一些ajax,它執行數據庫更新,從中提供數據提供自定義控件中保存的中繼器的源。
我的問題是數據庫正在更新但更新面板沒有被刷新。我得到的只是一個javascript錯誤,說'document.getelementbyid <'...'>爲空,或者不是數百萬行數過大的對象。