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;" />
这是有数据的在静态代码里看;
各位上面的方法还是空啊 --------------------编程问答--------------------
把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事件了吗? --------------------编程问答--------------------
用
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吗?
--------------------编程问答-------------------- 是的啊 --------------------编程问答--------------------
--------------------编程问答-------------------- 另一个form是做什么的?应该只有一个可以runat=server的
if(!IsPostBack)
{
数据绑定
}
--------------------编程问答-------------------- 要在第一次加载的时候绑定 --------------------编程问答-------------------- ((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>不,可能是位置不正确引起的 --------------------编程问答--------------------
要是位置不正确,根据id来获取控件中的值,就该报错了!!!
lz你在绑定数据的时候,pageload事件中是怎么绑定的 --------------------编程问答--------------------
我不是说了吗,这是在Repeater中的,在GridView中用另外的方法也行,GridView提供的方法比Repeater只多不少! --------------------编程问答-------------------- 大家都是探讨,没必要说的太.....
lz检查一下你获取到的row是第几行.
我一般操作GridView的SelectedIndexChanged都会用按钮,通过按钮来查找row的.呵呵 --------------------编程问答-------------------- SelectedIndexChanged事件,获取所选择行索引(GV.SelectedRow)
(((TextBox)GridView1.SelectedRow.FindControl("txt")).Text
补充:.NET技术 , ASP.NET