這對於更新面板應該是一件非常簡單的事情,但我遇到了麻煩。 我想更新vendorComboBox選擇更改,gridview頁面和該面板中的刪除按鈕上的updatePanelSelectedVendors。我根本不想刷新供應商的combox,但我不想做一個完整的帖子。更新面板和局部呈現以及AsyncPostBackTriggers僅在第一次使用AjaxControlToolkit時觸發:組合框
問題是,異步回發只發生了vendorComboBox的第一次選擇更改。我在此用戶控件中使用與其他更新面板相似的面板。我如何將它們全部鏈接在一起,只更新我設置的觸發器。
<div class="containerBox vendorsSelectBox">
<asp:Label ID="lblVendors" runat="server" EnableViewState="false" AssociatedControlID="vendorsComboBox" CssClass="labelHeader" Text="Vendors" />
<br />
<asp:UpdatePanel ID="updatePanelVendorsSelect" runat="server" ChildrenAsTriggers="false" UpdateMode="Conditional">
<ContentTemplate>
<ajaxToolkit:ComboBox ID="vendorsComboBox" runat="server"
DataTextField="Name"
DataValueField="VendorID"
AutoPostBack="true"
AutoCompleteMode="SuggestAppend"
DropDownStyle="DropDownList"
CssClass="CustomComboBoxStyle"
CaseSensitive="false"
AppendDataBoundItems="false"
onselectedindexchanged="vendorsComboBox_SelectedIndexChanged">
</ajaxToolkit:ComboBox>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<asp:Panel ID="panelSelectedVendors" runat="server" CssClass="containerBox selectedFranchiseBox">
<label class="labelHeader">Selected Vendors</label> <br />
<asp:UpdatePanel ID="updatePanelSelectedVendors" runat="server" ChildrenAsTriggers="true" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="vendorsComboBox" EventName="SelectedIndexChanged" />
</Triggers>
<ContentTemplate>
<asp:GridView ID="selectedVendorsList" runat="server"
AllowPaging="True"
Width="250"
DataKeyNames="VendorID" AutoGenerateColumns="False" SkinID="gridViewSkin"
onrowdatabound="selectedVendorsList_RowDataBound"
onpageindexchanging="selectedVendorsList_PageIndexChanging">
<Columns>
<asp:TemplateField HeaderText="Remove?" ItemStyle-Width="10">
<ItemTemplate>
<asp:CheckBox ID="checkBoxSelect" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
<br />
<asp:Button ID="buttonDeleteSelectedVendor" runat="server"
Text="Delete Selected Vendor" EnableViewState="false"
SkinID="button" style="display:none; float:left; width:150px;"
onclick="buttonDeleteSelectedVendor_Click" />
<asp:Button ID="buttonClearSelectedVendors" runat="server"
Text="Delete All" SkinID="button" style="float:right; margin-right:25px;"
Visible="false"
onclick="buttonClearSelectedVendors_Click" />
</asp:Panel>
編輯:我將vendorsComboBox更改爲常規DropDownList和部分職位後備工作我期望的方式。爲什麼不用ComboBox控件?
該問題似乎與ajax控件工具包ComboBox有關。我做了一個編輯指出。謝謝你的回答,證實了我認爲的關於更新面板的真實性,並指出我在正確的方向(爲此我給了一個投票) – Aligned 2009-11-20 21:06:25
不知道爲什麼組合框不能工作 - 從未使用過他們。但有一件事:在你的編輯中,你會說「......部分後期工作......」 - 它仍然是Asp.Net AJAX的完整回傳。不過,這只是部分重新渲染*頁面*。 – 2009-11-22 23:57:07