我正在尝试在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)

希望这对您有帮助。

10-06 04:32