IGNORE:
我在Onload方法中重新绑定了网格。
我有一个带有一些文本框的网格视图,我必须将它包装在UpdatePanel控件中。所以它看起来像这样:
<asp:UpdatePanel ID="upDistribution" runat="server" OnLoad="upDistribution_OnLoad">
<ContentTemplate>
<asp:GridView ID="gvDistributions" runat="server" AutoGenerateColumns="false"
OnRowDataBound="gvDistributions_RowDataBound"
CssClass="TallCells ContrastTable MaxWidth LeftHeaders"
GridLines="Both" ShowFooter="True" style="">
<RowStyle HorizontalAlign="Left" />
<EmptyDataTemplate>
No pricing history data found.
</EmptyDataTemplate>
<Columns>
<asp:TemplateField HeaderText="PriceA">
<ItemTemplate>
<asp:TextBox ID="txtPriceA" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="DistPrice">
<ItemTemplate>
<asp:TextBox ID="txtDistPrice" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
当我想获取为txtbox输入的值时,有一个“保存”按钮。如果GV周围没有UpdatePanel,我可以轻松获取txtbox值,如:
((TextBox)gvDistributions.Rows[0].Cells[0].FindControl("txtPriceA")).Text
但是当GridView被UpdatePanel包装时,上面的语句返回在页面加载上设置的值。
如何在不删除updatePanel的情况下获取文本框的值。我需要更新面板,因为行数和日期取决于另一个用户控件中的另一个变量。
答案 0 :(得分:0)
根据我的理解,您应该使用更新面板的触发器,如下所示。
<asp:UpdatePanel ...>
<ContentTemplate>
...
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
希望这会有所帮助!!
答案 1 :(得分:0)
将TextBox
与AutoPostBack
属性设置True
<asp:TextBox ID="txtPriceA" runat="server" AutoPostBack="True"/>
答案 2 :(得分:0)
我在onLoadMethod中重新绑定gridview