我在GridView中添加checkBox,为什么在页面中无论是否选择,都显示false呢。
网上有很多类似代码,在我的机器上就得不到想要的效果
代码如下: <div>
<asp:gridview ID="Gridview1" runat="server" AutoGenerateColumns="False" AllowPaging="True">
<Columns>
<asp:BoundField DataField="id" HeaderText="编号" />
<asp:BoundField DataField="userId" HeaderText="用户名" />
<asp:BoundField DataField="videoName" HeaderText="名称" />
<asp:TemplateField HeaderText="checked" SortExpression="checked">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" Text="通过" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:gridview>
<br />
<asp:CheckBox ID="chkAll" runat="server" AutoPostBack="True" OnCheckedChanged="chkAll_CheckedChanged"
Text="全选" />
<asp:Button ID="Button1" runat="server" Text="确定" OnClick="Button1_Click" />
</div>
=======================================================================
public partial class _Default : System.Web.UI.Page
{
Web.dataClass.fnVideo dc = new Web.dataClass.fnVideo();
protected void Page_Load(object sender, EventArgs e)
{
DataSet ds = dc.getAllData();
Gridview1.DataSource = ds.Tables[0].DefaultView;
Gridview1.DataBind();
}
protected void chkAll_CheckedChanged(object sender, EventArgs e)
{
for (int i = 0; i < Gridview1.Rows.Count; i++)
{
((CheckBox)Gridview1.Rows[i].FindControl("CheckBox1")).Checked = chkAll.Checked;
}
}
protected void Button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < Gridview1.Rows.Count; i++)
{
bool isChecked = ((CheckBox)Gridview1.Rows[i].FindControl("CheckBox1")).Checked;
Response.Write(isChecked.ToString() + "|");
} chkAll.Checked = false;
}
}
网上有很多类似代码,在我的机器上就得不到想要的效果
代码如下: <div>
<asp:gridview ID="Gridview1" runat="server" AutoGenerateColumns="False" AllowPaging="True">
<Columns>
<asp:BoundField DataField="id" HeaderText="编号" />
<asp:BoundField DataField="userId" HeaderText="用户名" />
<asp:BoundField DataField="videoName" HeaderText="名称" />
<asp:TemplateField HeaderText="checked" SortExpression="checked">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" Text="通过" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:gridview>
<br />
<asp:CheckBox ID="chkAll" runat="server" AutoPostBack="True" OnCheckedChanged="chkAll_CheckedChanged"
Text="全选" />
<asp:Button ID="Button1" runat="server" Text="确定" OnClick="Button1_Click" />
</div>
=======================================================================
public partial class _Default : System.Web.UI.Page
{
Web.dataClass.fnVideo dc = new Web.dataClass.fnVideo();
protected void Page_Load(object sender, EventArgs e)
{
DataSet ds = dc.getAllData();
Gridview1.DataSource = ds.Tables[0].DefaultView;
Gridview1.DataBind();
}
protected void chkAll_CheckedChanged(object sender, EventArgs e)
{
for (int i = 0; i < Gridview1.Rows.Count; i++)
{
((CheckBox)Gridview1.Rows[i].FindControl("CheckBox1")).Checked = chkAll.Checked;
}
}
protected void Button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < Gridview1.Rows.Count; i++)
{
bool isChecked = ((CheckBox)Gridview1.Rows[i].FindControl("CheckBox1")).Checked;
Response.Write(isChecked.ToString() + "|");
} chkAll.Checked = false;
}
}
--〉我在GridView中添加checkBox,为什么在页面中无论是否选择,都显示false呢。
问题在这吧:((CheckBox)Gridview1.Rows[i].FindControl("CheckBox1")).Checked = chkAll.Checked;
chkAll.Checked = false;
在Page_Load中加入:
if (!Page.IsPostBack)
{
}
就OK了