我这个gridview ID是gvEmailInfo
前台:
<asp:TemplateField>
<HeaderTemplate>
<input id="select_all" onclick="checkFormAll(this.checked)" type="checkbox">
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="select_one" runat="server" />
</ItemTemplate>
</asp:TemplateField>js:
<script type="text/javascript">
function checkFormAll(chk) {
form = document.getElementById("select_all");
for (var i = 0; i < form1.elements.length; i++) {
if (form1.elements[i].type == "checkbox") {
form1.elements[i].checked = chk;
}
}
}
</script>后台:
protected void Page_Load(object sender, EventArgs e)
{
string sqlstr = "SELECT * FROM messageView WHERE Rreceiver='" + SnoOrTno + "'";
gvEmailInfo.DataKeyNames = new string[] {"Mno"};
sqloperate.gvBind(gvEmailInfo, sqlstr); }
//删除button
protected void DelSelected_Click(object sender, EventArgs e)
{
string str_id = "";
for (int i = 0; i < this.gvEmailInfo.Rows.Count; i++)
{
CheckBox cbox = (CheckBox)gvEmailInfo.Rows[i].FindControl("select_one");
if (cbox.Checked == true)
{
string id = gvEmailInfo.DataKeys[i].Value.ToString();
if (i == this.gvEmailInfo.Rows.Count - 1)
{
str_id = str_id + id;
}
else
{ str_id = str_id + id + ",";
} }
}
string delStr = "DELETE Receiver WHERE Mno in(" + str_id + ") AND Rreceiver='" + SnoOrTno + "'";
sqloperate.DataCom(delStr);
gvEmailInfo.DataBind(); }
数据库操作:
public void DataCom(string sqlstr)
{
sqlconn.Open();
SqlCommand sqlcomm = new SqlCommand(sqlstr, sqlconn);
sqlcomm.ExecuteNonQuery();
sqlconn.Close();
}
public void gvBind(GridView gv, string sqlstr)
{
sqlconn.Open();
SqlDataAdapter sqldataadapter = new SqlDataAdapter(sqlstr, sqlconn);
DataSet mydataset = new DataSet();
sqldataadapter.Fill(mydataset);
gv.DataSource = mydataset;
gv.DataBind();
sqlconn.Close();
}
现在的问题是功能没实现 症结是str_id的值一直为空(运行后 红色处的语句是DELETE Receiver WHERE Mno in() AND Rreceiver='" + SnoOrTno + "'")想说的是这个gridview绑定的是一个视图(也就是messageView),和这个有关系么?请前辈们指教,谢谢!!
前台:
<asp:TemplateField>
<HeaderTemplate>
<input id="select_all" onclick="checkFormAll(this.checked)" type="checkbox">
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="select_one" runat="server" />
</ItemTemplate>
</asp:TemplateField>js:
<script type="text/javascript">
function checkFormAll(chk) {
form = document.getElementById("select_all");
for (var i = 0; i < form1.elements.length; i++) {
if (form1.elements[i].type == "checkbox") {
form1.elements[i].checked = chk;
}
}
}
</script>后台:
protected void Page_Load(object sender, EventArgs e)
{
string sqlstr = "SELECT * FROM messageView WHERE Rreceiver='" + SnoOrTno + "'";
gvEmailInfo.DataKeyNames = new string[] {"Mno"};
sqloperate.gvBind(gvEmailInfo, sqlstr); }
//删除button
protected void DelSelected_Click(object sender, EventArgs e)
{
string str_id = "";
for (int i = 0; i < this.gvEmailInfo.Rows.Count; i++)
{
CheckBox cbox = (CheckBox)gvEmailInfo.Rows[i].FindControl("select_one");
if (cbox.Checked == true)
{
string id = gvEmailInfo.DataKeys[i].Value.ToString();
if (i == this.gvEmailInfo.Rows.Count - 1)
{
str_id = str_id + id;
}
else
{ str_id = str_id + id + ",";
} }
}
string delStr = "DELETE Receiver WHERE Mno in(" + str_id + ") AND Rreceiver='" + SnoOrTno + "'";
sqloperate.DataCom(delStr);
gvEmailInfo.DataBind(); }
数据库操作:
public void DataCom(string sqlstr)
{
sqlconn.Open();
SqlCommand sqlcomm = new SqlCommand(sqlstr, sqlconn);
sqlcomm.ExecuteNonQuery();
sqlconn.Close();
}
public void gvBind(GridView gv, string sqlstr)
{
sqlconn.Open();
SqlDataAdapter sqldataadapter = new SqlDataAdapter(sqlstr, sqlconn);
DataSet mydataset = new DataSet();
sqldataadapter.Fill(mydataset);
gv.DataSource = mydataset;
gv.DataBind();
sqlconn.Close();
}
现在的问题是功能没实现 症结是str_id的值一直为空(运行后 红色处的语句是DELETE Receiver WHERE Mno in() AND Rreceiver='" + SnoOrTno + "'")想说的是这个gridview绑定的是一个视图(也就是messageView),和这个有关系么?请前辈们指教,谢谢!!
{
if(!IsPostBack)
{ string sqlstr = "SELECT * FROM messageView WHERE Rreceiver='" + SnoOrTno + "'";
gvEmailInfo.DataKeyNames = new string[] {"Mno"};
sqloperate.gvBind(gvEmailInfo, sqlstr);
}
}
加上以后 去得到值 但gridview的分页又没用了
protected void gvEmailInfo_PageIndexChanging(object sender, GridViewPageEventArgs e)
{ gvEmailInfo.PageIndex = e.NewPageIndex;
gvEmailInfo.DataBind();
}
GridView1.PageIndex = e.NewPageIndex;
GridView1.datasource="数据源";
GridView1.DataBind();
}if(!IsOPostBack)BindData();
protected void gvEmailInfo_PageIndexChanging(object sender, GridViewPageEventArgs e)
{ gvEmailInfo.PageIndex = e.NewPageIndex;
string sqlstr = "SELECT * FROM messageView WHERE Rreceiver='" + SnoOrTno + "'";
gvEmailInfo.DataKeyNames = new string[] {"Mno"};
sqloperate.gvBind(gvEmailInfo, sqlstr);
}
http://blog.csdn.net/21aspnet/archive/2007/03/25/1540301.aspx