当前位置:编程学习 > C#/ASP.NET >>

asp.net 数据处理

 TextBox Ywac =(TextBox) GridView1.Rows[GridView1.EditIndex].Cells[0].Controls[0]
可以找到控件,Ywac.text却没有值!
请各位高手帮看一下什么问题. --------------------编程问答-------------------- 控件往返状态保存属性是否为true?

如果已为true

则是你在页面的载入Page_Load()事件中重新绑定了数据,也就是常见的

Page.IsPostBack问题 --------------------编程问答-------------------- Page.IsPostBack问题 --------------------编程问答-------------------- 如何让Page.IsPostBack为True. --------------------编程问答-------------------- 服务器控件回发是false
get是true,客户端控件 post true --------------------编程问答-------------------- 其实也可以在GridView.DataBound事件处理代码里找到编辑状态下的TextBox的值。
如:
 <asp:TemplateField HeaderText="UnitPrice" SortExpression="UnitPrice">
       <EditItemTemplate>
              <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("UnitPrice") %>'></asp:TextBox>
       </EditItemTemplate>
       <ItemTemplate>
               <asp:Label ID="Label1" runat="server" Text='<%# Bind("UnitPrice") %>'></asp:Label>
         </ItemTemplate>
</asp:TemplateField>

想找到编辑状态下的TextBox1的值。

protected void GridView1_DataBound(object sender, EventArgs e)
{
      if (GridView1.EditIndex > -1)
      {
                TextBox tb = (TextBox)GridView1.Rows[GridView1.EditIndex].FindControl("TextBox1");
                Page.ClientScript.RegisterStartupScript(this.GetType(), "scriptKey", "alert('" + tb.Text + "');", true);
      }
}

只要点击GridView上的编辑按钮,因为GridView需要重新绑定数据,以使要编辑的行以TextBox形式显示,所以DataBound事件必定被触发,这时检查EditIndex是否大于-1,然后就可以找到TextBox1了。 --------------------编程问答-------------------- 我在UPDATE使用的是存储过程.触发更新前事件进行数据与Gridview里的编辑状态下的控件绑定.才出现之前提出的问题. --------------------编程问答-------------------- 把你的Page_Load()事件里的代码改成以下代码

if(!IsPostBack)
{
  //你原来的代码
} --------------------编程问答-------------------- 判断是否为回发,
if(!IsPostBack) 

  //你原来的代码 
} --------------------编程问答-------------------- 还是没有解决,哪位易做图可以告诉我,如何用Gridview+SqlDataSource+UPDATE(存储过程)进行更新数据 --------------------编程问答-------------------- 你的列是放到模板中的吗?

如果是放到模板中,则就该是TextBox tb = (TextBox)GridView1.Rows[GridView1.EditIndex].FindControl("TextBox1"); 
而不是TextBox Ywac =(TextBox) GridView1.Rows[GridView1.EditIndex].Cells[0].Controls[0] 
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,