gridview里模板列使用textbox,button赋值和获取值,以及和全选按钮的使用
html 页面
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="100%">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox2" runat="server" OnCheckedChanged="CheckBox2_CheckedChanged1"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="订单编号" DataField="OrderNo" />
<asp:BoundField HeaderText="商品id" DataField="simid" />
<asp:BoundField DataField="simprice" HeaderText="单价" />
<asp:TemplateField HeaderText="数量">
<ItemTemplate>
<asp:Button ID="Button2" runat="server" Text="-" OnClick="Button2_Click" />
<asp:TextBox ID="tbnumber" runat="server" Text='<%#Eval("TotalNumber") %>'></asp:TextBox>
<asp:Button ID="Button3" runat="server" Text="+" OnClick="Button3_Click" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:CheckBox ID="CheckBox2" runat="server" AutoPostBack="True" Font-Strikeout="False" OnCheckedChanged="CheckBox2_CheckedChanged" Text="全选" />
gridview里面的模板列使用了两个button,一个+一个-,还有一个文本框放置数据
给gridview初始化赋值的时候,根据选择出的datatable,将各个字段赋值,其中的TotalNumber字段通过<%#Eval("TotalNumber") %>的方式赋值给textbox
button+的事件
protected void Button3_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
GridViewRow row = btn.Parent.Parent as GridViewRow;//这个patent容器可能不止是一个
TextBox tbox = (TextBox)GridView1.Rows[row.RowIndex].FindControl("tbnumber");//这种方式来获取字段
int num = Convert.ToInt32(tbox.Text.Trim())+1;
tbox.Text = Convert.ToString(num);
}
button-事件
protected void Button2_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
GridViewRow row = btn.Parent.Parent as GridViewRow;
TextBox tbox = (TextBox)GridView1.Rows[row.RowIndex].FindControl("tbnumber");
int num = Convert.ToInt32(tbox.Text.Trim());
if (num > 1)
{
num = num - 1;
}
tbox.Text = Convert.ToString(num);
}
全选按钮
protected void CheckBox2_CheckedChanged(object sender, EventArgs e)
{
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox2");
if (CheckBox2.Checked == true)
{
cbox.Checked = true;
}
else
{
cbox.Checked = false;
}
}
}