我正在尝试在dropdownlist的indexchange事件上将值赋给hiddenfield!实际上,问题是当我尝试更新记录时,我找不到该隐藏字段的值!请给我解决方案或提出其他选择!谢谢 !
我的网格视图是
<asp:TemplateField HeaderText="LocCode" SortExpression="LocCode">
<EditItemTemplate>
<ajax:UpdatePanel ID="upEditsLocation" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:DropDownList ID="ddlLocation" runat="server"
DataSourceID="sdsLocation"
OnDataBound="ddlLocation_DataBound"
DataValueField="LocCode" AppendDataBoundItems="false"
DataTextField="LocCode"
AutoPostBack="true"
onselectedindexchanged="ddlLocation_SelectedIndexChanged">
</asp:DropDownList>
<asp:SqlDataSource ID="sdsLocation" runat="server" ConnectionString="<%$ ConnectionStrings:ccConnString %>"
ProviderName="<%$ ConnectionStrings:CCConnString.ProviderName %>" SelectCommand="Select LocCode from Location">
</asp:SqlDataSource>
</ContentTemplate>
</ajax:UpdatePanel>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblLocation" runat="server" Text='<%# Bind("LocCode") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
我的indexchange事件是
protected void ddlLocation_SelectedIndexChanged(object sender, EventArgs e)
{
hdloc.Value = ddlLocation.SelectedItem.Text;
}
我的隐藏领域是
<asp:HiddenField ID="hdloc" runat="server" />
最佳答案
从代码中,我可以看到HiddenField
不是您的更新面板的一部分。因此,如果您为其分配任何值,它将不会反映在客户端计算机上。增加面板的范围以包括隐藏字段,然后尝试。
或者,您可以从ASP.net论坛尝试this解决方案
Here is a small tutorial on update panel (MSDN)
希望这对您有帮助。