我在数据绑定GridView中有一个隐藏字段,它在IE 11.0.9600中没有呈现它的值。
的.aspx
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:HiddenField ID="hdnField" runat="server" Value='<%# ((MyObject)Container.DataItem).MyEnumValue.ToString() %>' />
</ItemTemplate>
</asp:TemplateField>
呈现输出
铬/火狐
<input type="hidden" name="..." id="..." value="MyEnumStringValue">
IE
<input name="..." id="..." type="hidden"></input>
Chrome / Firefox中的名称相同,ID相同,没有值,也没有结束标记!
要获取渲染值,我需要做什么?还有其他人经历过这个吗?
答案 0 :(得分:1)
我尝试了以下预期结果: ASPX:
<asp:GridView ID="grid" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:HiddenField ID="hdnField" runat="server" Value='<%# ((MyObject)Container.DataItem).MyEnumValue.ToString() %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
代码背后的代码:
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
grid.DataSource = new[] {
new MyObject()
{
MyEnumValue = MyEnum.MyEnumStringValue,
}};
grid.DataBind();
}
public class MyObject
{
public MyEnum MyEnumValue { get; set; }
}
public enum MyEnum
{
MyEnumStringValue,
}
这会导致: Chrome 32.0.1700.107:
<input type="hidden" name="grid$ctl02$hdnField" id="grid_hdnField_0" value="MyEnumStringValue">
IE 11.0.9600.16518:
<input name="grid$ctl02$hdnField" id="grid_hdnField_0" type="hidden" value="MyEnumStringValue">
所以问题可能在其他地方,你能发布更多代码/细节吗?