C# 在gridview的boundfield中找不到值?
我试图在dropdownlist的indexchange事件中将值分配给hiddenfield!事实上,问题是当我试图更新我的记录时,我找不到那个隐藏字段的值!请给我解决方案或建议任何其他选项!谢谢大家! 我的网格视图是C# 在gridview的boundfield中找不到值?,c#,asp.net,gridview,hiddenfield,C#,Asp.net,Gridview,Hiddenfield,我试图在dropdownlist的indexchange事件中将值分配给hiddenfield!事实上,问题是当我试图更新我的记录时,我找不到那个隐藏字段的值!请给我解决方案或建议任何其他选项!谢谢大家! 我的网格视图是 <asp:TemplateField HeaderText="LocCode" SortExpression="LocCode"> <EditItemTemplate> <ajax:UpdatePanel ID="upEdits
<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>
我隐藏的领域是
<asp:HiddenField ID="hdloc" runat="server" />
从代码中,我可以看到
HiddenField
不是更新面板的一部分。因此,若您给它赋值,它将不会反映在客户机上。增加面板的范围以包括隐藏字段,然后重试
或者您也可以尝试ASP.net论坛上的解决方案
希望这对您有所帮助。从代码中我可以看到
隐藏字段
不是您的更新面板的一部分。因此,若您给它赋值,它将不会反映在客户机上。增加面板的范围以包括隐藏字段,然后重试
GridViewRow cancel = (GridViewRow)GridView1.Rows[e.RowIndex];
Label lbldeleteID = (Label)cancel.FindControl("lblid");
或者您也可以尝试ASP.net论坛上的解决方案
希望这对您有所帮助。如果您无法从代码隐藏中访问hdloc,则可能是由于Visual Studio未在aspx.designer.cs上添加hdloc(请尝试删除它并重新添加,或者更改id然后重新添加为原始值),也可能是由于隐藏字段被放置在另一个绑定控件的其他模板中,这意味着您需要使用ctrl.FindControl(“hdloc”)然后投给希登菲尔德。
GridViewRow cancel = (GridViewRow)GridView1.Rows[e.RowIndex];
Label lbldeleteID = (Label)cancel.FindControl("lblid");
此外,还需要使用UpdateMode=“Always”将此隐藏字段放入UpdatePanel中。
我确信ddlLocation.SelectedItem.Text与您使用的一样,会出现编译错误,因为ddlLocation在代码隐藏中不可见,因为它位于EditItemTemplate内部。如果无法从代码隐藏中访问hdloc,则Visual Studio也不会在aspx.designer.cs上添加(尝试删除它并将其添加回或更改id,然后返回原始值)或隐藏字段放置在另一个绑定控件的其他模板中,这意味着您需要使用ctrl.FindControl(“hdloc”)然后强制转换为HiddenField。
此外,还需要使用UpdateMode=“Always”将此隐藏字段放入UpdatePanel中。
我确信ddlLocation.SelectedItem.Text,就像您使用它一样,会产生编译错误,因为ddlLocation在代码隐藏中不可见,因为它位于EditItemTemplate内部。隐藏字段放在哪里?在数据绑定控件之外?是的!但是值分配给隐藏字段,但我无法访问代码隐藏!我不知道当我试图访问它时,实际问题是它给出了null!你不能访问hdloc或ddlocation吗?隐藏字段放在哪里?在你的数据绑定控制之外?是的!但是值分配给隐藏字段,但我不能访问它背后的代码!我不知道我试图访问它时的实际问题,它给出了null!你不能访问什么hdloc还是DDL位置?
protected void ddlLocation_SelectedIndexChanged(object sender, EventArgs e)
{
hdloc.Value = (sender as DropDownList).SelectedItem.Text;
}