我在重新填充updatepanel內的dropdownlist時遇到了一些麻煩。在頁面加載,我打開下拉列表:在UpdatePanel中重新填充Asp.Net DropDownList
this.dropdownFacility.Items.Clear();
this.dropdownFacility.DataSource = table;
this.dropdownFacility.DataTextField = "FacilityName";
this.dropdownFacility.DataValueField = "FacilityID";
this.dropdownFacility.DataBind();
變量「表」是我從一個SQL數據庫填充的DataTable。這工作,並顯示頁面加載第一次後,我的所有值。然後,我的網頁裏面,我有一個JQuery的對話框顯示:
<div id="assignmentDialog" title="Process Assignment">
<div style="margin:10px; font-size:16px; ">
<asp:Label runat="server" Text="Select A Facility:*" Font-Bold="true" style="width:140px; display:inline-block; vertical-align:text-top; text-align:right;" />
<asp:DropDownList runat="server" ID="dropdownFacility" />
<asp:LinkButton runat="server" ID="linkNewFacility" Text="New" ForeColor="Blue" OnClientClick="OpenFacilityDialog();" />
</div>
</div>
一旦點擊鏈接按鈕,另一個JQuery的對話框顯示允許用戶對設備輸入數據。當他們完成後,他們可以點擊一個按鈕提交數據:
<asp:Button runat="server" ID="NewFacility" Text="Submit" OnClick="NewFacility_Clicked" OnClientClick="return CheckFacilityData();" style="display: block; text-align:center; margin: 0 auto;" />
這是問題發生的地方。點擊按鈕後,我可以看到記錄已經插入到表格中。此外,在頁面加載過程中,在我的代碼中出現斷點時,我可以看到,在重新綁定下拉菜單後,項目數量增加了1,表明新記錄存在。但是,在實際頁面上,該新記錄不會顯示在下拉列表中。以下是我如何使用觸發器定義我的更新面板:
<asp:UpdatePanel runat="server" ID="assignmentUpdatePanel" UpdateMode="Conditional" ChildrenAsTriggers="true">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="NewFacility" EventName="Click" />
</Triggers>
...
任何人都可以看到我在做什麼錯?
我們可以看到代碼爲您的NewFacility點擊事件處理程序? – Lopsided
偶處理程序中的代碼只是將記錄提交給數據庫,並且工作正常。 –
經過更多測試後,我發現刪除JQuery對話框調用div,修復了重新填充下拉的問題。但是,我仍然想使用對話邏輯。有沒有解決這個問題的方法? –