Gridview多选操作问题求高手解惑
gridview模版已经添加checkbox<asp:TemplateField><ItemTemplate><asp:CheckBoxID="CheckBox3"run...
gridview模版已经添加checkbox
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox3" runat="server" />
</ItemTemplate>
</asp:TemplateField>
想实现 勾选后 点击“删除” 即可删除数据 但是现在checkbox3的勾选似乎被清空了 求高手解惑
protected void Button4_Click(object sender, EventArgs e)//buttonDelete
{
for (int i = 0; i < GridView1.Rows.Count; i++)
{
if (((CheckBox)GridView1.Rows[i].FindControl("CheckBox3")).Checked == true)//关键在这!勾选后 这里的if没有被执行 不知道原因...
{
sql.SqlNew("delete from SurveySI where No = '" + GridView1.DataKeys[i].Value + "'");//删除操作
}
Label2.Text = GridView1.DataKeys[i].Value.ToString().Trim();
}
QuestionBD("58");//sql绑定
}
第一次提问 没什么分 求高手帮忙
感谢各位大大帮忙~不过问题还是没有解决:那个if还是没有被操作
yeyingdeai和marco_98的方法基本上我都试过 datakey没有问题。。没有解决问题...
ysyhyt教的方法 我把判断加在IsChecked外面。。 不过也没解决问题
ノ灯火姗阑_说的方法。。我不是很看得懂 是不是指把Gridview里面的 autogeneratecolumns设置为true?这样Gridview就自己生成字段。。但是在不考虑是不要隐藏某些列的情况下 删除功能还是没有达到- -
求各位大大在帮忙看看 小弟谢过先~
代码贴不下了。。放下面 展开
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox3" runat="server" />
</ItemTemplate>
</asp:TemplateField>
想实现 勾选后 点击“删除” 即可删除数据 但是现在checkbox3的勾选似乎被清空了 求高手解惑
protected void Button4_Click(object sender, EventArgs e)//buttonDelete
{
for (int i = 0; i < GridView1.Rows.Count; i++)
{
if (((CheckBox)GridView1.Rows[i].FindControl("CheckBox3")).Checked == true)//关键在这!勾选后 这里的if没有被执行 不知道原因...
{
sql.SqlNew("delete from SurveySI where No = '" + GridView1.DataKeys[i].Value + "'");//删除操作
}
Label2.Text = GridView1.DataKeys[i].Value.ToString().Trim();
}
QuestionBD("58");//sql绑定
}
第一次提问 没什么分 求高手帮忙
感谢各位大大帮忙~不过问题还是没有解决:那个if还是没有被操作
yeyingdeai和marco_98的方法基本上我都试过 datakey没有问题。。没有解决问题...
ysyhyt教的方法 我把判断加在IsChecked外面。。 不过也没解决问题
ノ灯火姗阑_说的方法。。我不是很看得懂 是不是指把Gridview里面的 autogeneratecolumns设置为true?这样Gridview就自己生成字段。。但是在不考虑是不要隐藏某些列的情况下 删除功能还是没有达到- -
求各位大大在帮忙看看 小弟谢过先~
代码贴不下了。。放下面 展开
5个回答
展开全部
autogeneratecolumns属性---表示列的自定义产生
在cs文件中多加一行代码,其思路如下:
(1)设置一个css类:
<style>
.hidden{display:none;}
</style>
(2)随后在GridView的列编辑对话框中,对需要进行隐藏的列进行设置,分别设置FootStyle,HeaderStyle,ItemStyle的CssClass属性为“hidden”
Ok,这样我们就实现了隐藏列的目的,同时又能保证对其进行数据绑定。
隐藏列的值
在RowCreated事件中书写如下代码
void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
e.Row.Cells[0].Visible = true; //如果想使第1列不可见,则将它的可见性设为false
//可以根据需要设置更多的列
}
因为在RowCreated事件(隐藏)在绑定时候发生,所以这样就即能将数据绑定到列上,又隐藏了该列.所
以可以访问到隐藏列的值
dt.Columns[0].ColumnMapping = MappingType.Hidden; //隐藏
--------为gridview控件里的“删除”列添加一个确认对话框----------------------
在删除按钮的那一列属性里面,把DeleteText属性设为
可以时img标签
<div id="de" onclick="JavaScript:return confirm('确定删除吗?')">删除</div
在cs文件中多加一行代码,其思路如下:
(1)设置一个css类:
<style>
.hidden{display:none;}
</style>
(2)随后在GridView的列编辑对话框中,对需要进行隐藏的列进行设置,分别设置FootStyle,HeaderStyle,ItemStyle的CssClass属性为“hidden”
Ok,这样我们就实现了隐藏列的目的,同时又能保证对其进行数据绑定。
隐藏列的值
在RowCreated事件中书写如下代码
void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
e.Row.Cells[0].Visible = true; //如果想使第1列不可见,则将它的可见性设为false
//可以根据需要设置更多的列
}
因为在RowCreated事件(隐藏)在绑定时候发生,所以这样就即能将数据绑定到列上,又隐藏了该列.所
以可以访问到隐藏列的值
dt.Columns[0].ColumnMapping = MappingType.Hidden; //隐藏
--------为gridview控件里的“删除”列添加一个确认对话框----------------------
在删除按钮的那一列属性里面,把DeleteText属性设为
可以时img标签
<div id="de" onclick="JavaScript:return confirm('确定删除吗?')">删除</div
展开全部
if (((CheckBox)GridView1.Rows[i].FindControl("CheckBox3")).Checked == true)
改成
if((GridView1.Rows[i].FindControl("CheckBox3")as CheckBox).Checked )
看看
改成
if((GridView1.Rows[i].FindControl("CheckBox3")as CheckBox).Checked )
看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
GridView1.Rows,分为headerrow和footerrow以及datarow。
所以,你要在if前面加上一句
if(GridView1.Rows.rowtype==datacontrol.datarow)//手写代码,差不多是这个样子的。
不行你再问我。
所以,你要在if前面加上一句
if(GridView1.Rows.rowtype==datacontrol.datarow)//手写代码,差不多是这个样子的。
不行你再问我。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
分成两行写试试:
CheckBox cb = (CheckBox)GridView1.Rows[i].FindControl("CheckBox3);
if(cb.Checked)
{... }
但是我估计你的问题不在这,而在GridView1.DataKeys[i].Value
CheckBox cb = (CheckBox)GridView1.Rows[i].FindControl("CheckBox3);
if(cb.Checked)
{... }
但是我估计你的问题不在这,而在GridView1.DataKeys[i].Value
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
马甲号 贴下代码:
protected void Button4_Click(object sender, EventArgs e)
{
for (int i = 0; i < GridView1.Rows.Count; i++)
{
if (GridView1.Rows[0].RowType == DataControlRowType.DataRow)
{
CheckBox cb = (CheckBox)GridView1.Rows[i].FindControl("CheckBox3");
if (cb.Checked == true)
{
sql.SqlNew("delete from SurveySI where No = '" + GridView1.DataKeys[i].Value + "'");
Label2.Text = GridView1.DataKeys[i].Value.ToString().Trim();
}
Label3.Text = GridView1.DataKeys[i].Value.ToString().Trim();
}
QuestionBD("58");
}
}
<asp:GridView ID="GridView1" runat="server"
onrowcancelingedit="GridView1_RowCancelingEdit"
onrowediting="GridView1_RowEditing"
onrowupdating="GridView1_RowUpdating" BackColor="White"
BorderColor="#CC9966" BorderStyle="None" BorderWidth="1px" CellPadding="4"
onrowdatabound="GridView1_RowDataBound"
onrowcreated="GridView1_RowCreated">
<FooterStyle BackColor="#FFFFCC" ForeColor="#330099" />
<RowStyle BackColor="White" ForeColor="#330099" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox3" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Question" HeaderText="问题" />
<asp:BoundField DataField="SelectItem" HeaderText="选项" />
<asp:CommandField ShowEditButton="True" />
<asp:CommandField ShowSelectButton="True" />
</Columns>
<PagerStyle BackColor="#FFFFCC" ForeColor="#330099" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="#FFFFCC" />
<EditRowStyle BorderColor="#CC0000" BorderStyle="Solid" BackColor="#CC0000" />
</asp:GridView>
protected void Button4_Click(object sender, EventArgs e)
{
for (int i = 0; i < GridView1.Rows.Count; i++)
{
if (GridView1.Rows[0].RowType == DataControlRowType.DataRow)
{
CheckBox cb = (CheckBox)GridView1.Rows[i].FindControl("CheckBox3");
if (cb.Checked == true)
{
sql.SqlNew("delete from SurveySI where No = '" + GridView1.DataKeys[i].Value + "'");
Label2.Text = GridView1.DataKeys[i].Value.ToString().Trim();
}
Label3.Text = GridView1.DataKeys[i].Value.ToString().Trim();
}
QuestionBD("58");
}
}
<asp:GridView ID="GridView1" runat="server"
onrowcancelingedit="GridView1_RowCancelingEdit"
onrowediting="GridView1_RowEditing"
onrowupdating="GridView1_RowUpdating" BackColor="White"
BorderColor="#CC9966" BorderStyle="None" BorderWidth="1px" CellPadding="4"
onrowdatabound="GridView1_RowDataBound"
onrowcreated="GridView1_RowCreated">
<FooterStyle BackColor="#FFFFCC" ForeColor="#330099" />
<RowStyle BackColor="White" ForeColor="#330099" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox3" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Question" HeaderText="问题" />
<asp:BoundField DataField="SelectItem" HeaderText="选项" />
<asp:CommandField ShowEditButton="True" />
<asp:CommandField ShowSelectButton="True" />
</Columns>
<PagerStyle BackColor="#FFFFCC" ForeColor="#330099" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="#FFFFCC" />
<EditRowStyle BorderColor="#CC0000" BorderStyle="Solid" BackColor="#CC0000" />
</asp:GridView>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询