Jquery 为什么HiddenField值在回发时保持不变,而其他控件则会丢失其内容?
我有一个Jquery 为什么HiddenField值在回发时保持不变,而其他控件则会丢失其内容?,jquery,asp.net,Jquery,Asp.net,我有一个GridView,它有一个页脚行,我使用标签显示每列的总计 我正在JQuery中访问GridView,使用JQuery成功计算出总数,并显示在GridView每列的FooterRow中 <asp:TemplateField HeaderText="Age"> <ItemTemplate> <asp:Label ID="lblAge" Text='<%# Eval("Age"
GridView
,它有一个页脚行,我使用标签显示每列的总计
我正在JQuery中访问GridView
,使用JQuery成功计算出总数,并显示在GridView每列的FooterRow
中
<asp:TemplateField HeaderText="Age">
<ItemTemplate>
<asp:Label ID="lblAge" Text='<%# Eval("Age") %>' runat="server"></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:Label ID="lbltotalAge" runat="server"></asp:Label>
</FooterTemplate>
</asp:TemplateField>
为了克服这个问题,我在GridView之外使用了HiddenField
控件,在Jquery函数中计算完总值后,我将这些值复制到相应的
HiddenFields
,并成功地在codebehind中获得值
我的问题是为什么会这样?hiddenfields有什么特别之处?并不是因为它们是隐藏字段,而是因为它们呈现为html输入控件,可以回发它们的值,因此可以在回发后再次使用 其他未呈现为输入控件的控件,它们无法回发其值,asp.net会在页面的viewstate上保存以前的值,这也是一个隐藏的输入控件,用于保存数据并回发。因此,在回帖之后,在asp.net后面的代码上解码视图状态,并将值提供给该控件
例如,
文本框
呈现为输入控件,文本
不是。您可能在页面中使用了更新面板,并且隐藏字段位于该更新面板的内容模板内。回发期间,它会更新隐藏字段值,因为它是客户端控件。
只是文本,而不是控件。通过检查输出的html源代码,您可能知道。如果任何类型的输入控件都是post数据,则文本框在输入控件上呈现。看看类型:非常奇怪的东西。。我正在使用文本框显示总值。。。当我执行textbox属性Readonly=true
时,我无法访问textbox值,但当我设置Enabled=“false”
时,值会在codebehind中捕获。。。我不希望使用gery文本颜色来显示Enabled=“flase”
,因为它会使文本更难阅读…@mhasan如果您出于任何原因无法使用asp.net获取它的值,那么请使用表单[ControlID.UniqueID]
查看返回的内容。我使用了输入类型=“text readonly=“true”>
,现在就可以了。谢谢您的帮助。
string totalAge = ((Label)GrdV.FooterRow.FindControl("lbltotalAge")).Text; // always 0