【问题标题】:Button Update in gridview and get value from hidden textboxgridview中的按钮更新并从隐藏的文本框中获取值
【发布时间】:2017-05-15 03:59:49
【问题描述】:

gridview 中的按钮无法从隐藏的文本框中获取正确的值。

代码如下:

asp:

<columns>
  <asp:TemplateField >
      <ItemTemplate>
 <asp:TextBox ID="txtFruit" runat="server" Visible="true" Text='<%# Bind("txtFruit")%>'  />
      </ItemTemplate>
   </asp:TemplateField>

     <asp:BoundField DataField="HiddentxtFruit" HeaderText ="Fruit" HeaderStyle-Width="0%" HtmlEncode="false" Visible="false"   />

     </asp:TemplateField>


            <asp:TemplateField HeaderText="Confirm">
 <ItemTemplate>
<asp:Button ID="btnSubmit" Text="Confirm" runat="server"  CommandName="Submit" />

 </ItemTemplate>
 </asp:TemplateField>

</columns>

后面的代码:

 For intX As Integer = 0 To gridview1.Rows.Count - 1
   Dim txtPLACE As TextBox = TryCast(gridview1.Rows(0).Cells(0).FindControl("txtFruit"), TextBox)
Next

 For intX As Integer = 0 To gridview1.Rows.Count - 1
   Dim txtPLACEss As TextBox = DirectCast(gridview1.Rows(intX).FindControl("txtFruit"), TextBox)
Next

这只会从 gridview 中获取第一行。

【问题讨论】:

  • 你在使用 Row_updating 事件吗?
  • @RamSingh 不,我使用按钮单击

标签: asp.net vb.net


【解决方案1】:

使用以下代码获取行的索引:

Dim rowIndex = DirectCast(DirectCast(sender, Control).NamingContainer, GridViewRow).RowIndex

然后

 Dim txtPLACEss As TextBox = DirectCast(gridview1.Rows(rowIndex).FindControl("txtFruit"), TextBox)

这会解决你的问题

更新:

 <asp:TemplateField >
  <ItemTemplate><asp:TextBox ID="txtFruit" runat="server" Visible="true" Text='<%# Bind("txtFruit")%>'  /></ItemTemplate></asp:TemplateField>
<asp:TextBox ID="txtFruitHidden" runat="server" Text='<%# Bind("txtFruit")%>'  HeaderStyle-Width="0%" HtmlEncode="false" Visible="false" />

 </asp:TemplateField>

然后在 C# 中

     Dim txtPLACEss As TextBox = DirectCast(gridview1.Rows(rowIndex).FindControl("txtFruitHidden"), TextBox)

希望这能解决您的问题..

【讨论】:

  • 无法将“ASP.forms_fruit_stock_fruits_aspx”类型的对象转换为“System.Web.UI.WebControls.GridViewRow”,无法使用您提供的方式进行转换
  • 我只是提供了一种方法来获取该行的索引,从哪个按钮被点击这就是你问我的想法.. :)
  • txtFruit 是 boundField 而不是文本框,这就是你面临这个问题的原因......只需使用更新的代码:
  • 对不起,我把这两个名字放在一起了,已经更新了还是有同样的问题
  • @AndrewMadMan。兄弟..我已经将该绑定字段转换为文本框..只需将其更改为文本框,然后尝试我在答案中编写的代码..
猜你喜欢
  • 1970-01-01
  • 2015-11-23
  • 2011-05-06
  • 2013-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-02
相关资源
最近更新 更多