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

gridview 文本框 取值??急啊


<asp:TemplateField HeaderText="Quantity:" ControlStyle-CssClass="Quantity">
  <ItemTemplate>
<asp:TextBox ID="tb_Number" runat="server" Text='<%# Bind("Quantity") %>' Width="60px" MaxLength="5"></asp:TextBox>
</ItemTemplate>

在选择事件中取不出来啊
 int count = int.Parse(this.GridView_Cart.SelectedIndex.ToString());
        GridViewRow gvr = GridView_Cart.Rows[count];
      
        TextBox tx = (TextBox)gvr.Cells[0].FindControl("tb_Number");
        string Number = tx.Text;


---------Number为“” --------------------编程问答-------------------- tb_Number  本来有没有值???? --------------------编程问答-------------------- 有的,绑定后是有值的 --------------------编程问答-------------------- TextBox tx =this.GridView1.SelectedRow.FindControl("tb_Number") as TextBox;
string Number = tx.Text;

试试? --------------------编程问答-------------------- 代码看似正常,不过GridView_Cart.SelectedIndex本是就是int没必要转成string 再转int

--------------------编程问答-------------------- TextBox tb_Number = (TextBox)e.Row.FindControl("tb_Number");
我这里没问题啊!!! --------------------编程问答-------------------- <input name="GridView_Cart$ctl02$tb_Number" type="text" value="1" maxlength="5" id="GridView_Cart_ctl02_tb_Number" class="Quantity" style="width:60px;" />

这是有数据的在静态代码里看;
各位上面的方法还是空啊 --------------------编程问答--------------------
引用 3 楼 sxy445566 的回复:
TextBox tx =this.GridView1.SelectedRow.FindControl("tb_Number") as TextBox;
string Number = tx.Text;

试试?


把this.GridView1 改成 this.GridView_Cart --------------------编程问答-------------------- TextBox tb_Number = (TextBox)e.Row.FindControl("tb_Number");
String aa=tb_Number.text
我这里有值 --------------------编程问答-------------------- 看你是否加了ISPOSTBACE  大多是这里的问题 --------------------编程问答-------------------- 加了,还是没有值啊 --------------------编程问答-------------------- TextBox tx = (TextBox)gvr.Cells[0].FindControl("tb_Number");
  string Number = tx.Text;
改下:
TextBox tx = gvr.FindControl("tb_Number") as TextBox;
  string Number = tx.Text;
--------------------编程问答-------------------- 还是没有啊 --------------------编程问答-------------------- 贴代码
          . --------------------编程问答--------------------    protected void GridView_Cart_SelectedIndexChanged(object sender, EventArgs e)
    {
        int count = int.Parse(this.GridView_Cart.SelectedIndex.ToString());
        GridViewRow gvr = GridView_Cart.Rows[count];

        TextBox tx = (TextBox)gvr.Cells[1].FindControl("tb_Number");
        string  Number = tx.Text;


就是取不到啊 --------------------编程问答-------------------- <asp:TemplateField HeaderText="Quantity:" ControlStyle-CssClass="Quantity">
  <ItemTemplate>
<asp:TextBox ID="tb_Number" runat="server" Text='<%# Bind("Quantity") %>' Width="60px" MaxLength="5"></asp:TextBox>
</ItemTemplate> --------------------编程问答-------------------- 事件有没有执行?
--------------------编程问答-------------------- 其实我想知道,你的代码到底进SelectedIndexChanged事件了吗? --------------------编程问答--------------------
引用 14 楼 nick_nie 的回复:
   protected void GridView_Cart_SelectedIndexChanged(object sender, EventArgs e)
    {
        int count = int.Parse(this.GridView_Cart.SelectedIndex.ToString());
        GridViewRow gvr = GridVie……


e.Row.FindControl("文本框") --------------------编程问答-------------------- 绑定后 放到ViewState里面 然后从里面取值 --------------------编程问答-------------------- TextBox tx = (TextBox)gvr.Cells[0].FindControl("tb_Number");这一句的问题

应为你的TextBox是放在TemplateField下的<ItemTemplate>中,那么TextBox确定是在Cells[0]中? --------------------编程问答-------------------- TextBox tx = (TextBox)gvr.Cells[0].FindControl("tb_Number");
  这个是获取0列的 这个名为tb_Number的控件  如果你gridview 里面的0列前面有隐藏列的话
 那么他的位置是不对的 所以取不到.  --------------------编程问答-------------------- 另外,你的Textbox取值代码是编写在那个事件中? --------------------编程问答-------------------- 没有隐藏的值啊 --------------------编程问答-------------------- TextBox tx = (TextBox)e.Row.Cells[0].FindControl("tb_Number"); --------------------编程问答-------------------- 我asp.net 页面里面有个
 <form id="form2" name="search_form" action="" method="post" runat="server">
          <label>
            <input id="CityLocal" class="search_input" maxlength="200" runat="server"/>
              </label>
          <label></label>
          <select  class="search_select" name="search_select">
            <option value="0">All Produccts</option>
          </select>
           
          <input type="submit" name="search_button" value=" " class="search_button" />
        </form>
就不行吗? --------------------编程问答-------------------- 你的页面中有两个form吗?
--------------------编程问答-------------------- 是的啊 --------------------编程问答--------------------

if(!IsPostBack)
{
   数据绑定
}
--------------------编程问答-------------------- 另一个form是做什么的?应该只有一个可以runat=server的
--------------------编程问答-------------------- 要在第一次加载的时候绑定 --------------------编程问答-------------------- ((TextBox)e.Item.FindControl("TextBox1")).Text
我是用Repeater写的,用Gridview感觉也应该行 --------------------编程问答-------------------- 楼上那些怎么都不看楼主是在什么事件里面取值
  在 GridView_Cart_SelectedIndexChanged 事件中

能"e.item...."嘛   能"e.Row..嘛"   瞎扯!!!!!!!!!!!
--------------------编程问答-------------------- 生成页面 源文件看看TextBox是不是真的在第一列。。。。。 --------------------编程问答-------------------- <asp:TemplateField HeaderText="Quantity:" ControlStyle-CssClass="Quantity">
  <ItemTemplate>
<asp:TextBox ID="tb_Number" runat="server" Text='<%# Bind("Quantity") %>' Width="60px" MaxLength="5"></asp:TextBox>
</ItemTemplate>
这段代码上边还有没有<asp:TemplateField></ItemTemplate>不,可能是位置不正确引起的 --------------------编程问答--------------------
引用 34 楼 jackienan 的回复:
<asp:TemplateField HeaderText="Quantity:" ControlStyle-CssClass="Quantity">
  <ItemTemplate>
<asp:TextBox ID="tb_Number" runat="server" Text='<%# Bind("Quantity") %>' Width="60px" MaxLength="5"></a……


要是位置不正确,根据id来获取控件中的值,就该报错了!!!

lz你在绑定数据的时候,pageload事件中是怎么绑定的 --------------------编程问答--------------------
引用 32 楼 huiming_zhou 的回复:
楼上那些怎么都不看楼主是在什么事件里面取值
  在 GridView_Cart_SelectedIndexChanged 事件中

能"e.item...."嘛 能"e.Row..嘛" 瞎扯!!!!!!!!!!!

我不是说了吗,这是在Repeater中的,在GridView中用另外的方法也行,GridView提供的方法比Repeater只多不少! --------------------编程问答-------------------- 大家都是探讨,没必要说的太.....

lz检查一下你获取到的row是第几行.
我一般操作GridView的SelectedIndexChanged都会用按钮,通过按钮来查找row的.呵呵 --------------------编程问答-------------------- SelectedIndexChanged事件,获取所选择行索引(GV.SelectedRow)
(((TextBox)GridView1.SelectedRow.FindControl("txt")).Text
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,