我在数据绑定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,没有值,也没有结束标记!
我需要做什么才能获得渲染值?有人经历过这个吗?
解决方法
我尝试了以下预期结果:
ASPX:
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">
所以问题可能在其他地方,你能发布更多的代码/细节吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。