读书人

关于DATAGRID删除多行的有关问题最好

发布时间: 2012-03-02 14:40:28 作者: rapoo

关于DATAGRID删除多行的问题,最好“孟子E章”看到后请进来,我是看了你的文章,谢谢!
前台:
<%@ Page language= "c# " Codebehind= "DataGridCheckBox.aspx.cs " AutoEventWireup= "false " Inherits= "eMeng.Exam.DataGridCheckBox.DataGridCheckBox " %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN " >
<HTML>
<HEAD>
<title> 为DataGrid添加CheckBox控件的例子 </title>
</HEAD>
<body>
<form id= "frmMain " method= "post " runat= "server ">
<asp:datagrid id= "dgMain " runat= "server " PageSize= "5 " AllowPaging= "True " Width= "98% " AutoGenerateColumns= "False "
Font-Size= "9pt " Font-Names= "宋体 " DataKeyField= "au_id ">
<AlternatingItemStyle ForeColor= "ControlText " BackColor= "White "> </AlternatingItemStyle>
<ItemStyle ForeColor= "ControlText " BackColor= "WhiteSmoke "> </ItemStyle>
<HeaderStyle Font-Bold= "True " HorizontalAlign= "Center " ForeColor= "Black " VerticalAlign= "Middle "
BackColor= "Control "> </HeaderStyle>
<Columns>
<asp:TemplateColumn HeaderText= "选项 ">
<HeaderStyle HorizontalAlign= "Center " Width= "50px "> </HeaderStyle>
<ItemTemplate>
<INPUT id=SelectedID type=hidden value= ' <%# Server.HtmlEncode((string)DataBinder.Eval(Container.DataItem, "au_id "))%> ' name=SelectedID runat= "server ">
<asp:CheckBox id= "chkExport " Runat= "server "> </asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField= "au_id " ReadOnly= "True " HeaderText= "序号 ">
<HeaderStyle Width= "50px "> </HeaderStyle>
</asp:BoundColumn>
<asp:TemplateColumn SortExpression= "demo " HeaderText= "标题 ">
<ItemTemplate>
<asp:Label id=lblColumn runat= "server " Width= "80% " Text= ' <%# Server.HtmlEncode((string)DataBinder.Eval(Container.DataItem, "au_lname "))%> '>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle NextPageText= "上一页 " PrevPageText= "下一页 "> </PagerStyle>
</asp:datagrid> <asp:button id= "cmdSelectAll " runat= "server " Text= "全部选中 "> </asp:button> <asp:button id= "cmdFindSelected " runat= "server " Text= "删除选中的项目 "> </asp:button> <br>
<asp:label id= "Label1 " runat= "server "> </asp:label>
<hr>
<asp:label id= "Label2 " runat= "server "> </asp:label> </form>
</body>
</HTML>


后台:

using System;
using System.Collections;
using System.ComponentModel;


using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Configuration;

namespace eMeng.Exam.DataGridCheckBox
{
/// <summary>
/// DataGridCheckBox 的摘要说明。
/// 【孟宪会之精彩世界】
/// </summary>
public class DataGridCheckBox : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button cmdSelectAll;
protected System.Web.UI.WebControls.Button cmdFindSelected;
protected System.Web.UI.WebControls.DataGrid dgMain;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Label Label2;
DataView oDataView;
//string sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= "
//+ HttpContext.Current.Server.MapPath( "../../aspxWeb.mdb.ascx ");

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
dgMain.Columns[0].HeaderText = "选项 ";
dgMain.Columns[1].HeaderText = "序号 ";
dgMain.Columns[2].HeaderText = "标题 ";
cmdFindSelected.Text = "查看选中的项目 ";

if(!this.IsPostBack)
{
cmdSelectAll.Text = "全部选中 ";
RefreshGrid();
}
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.dgMain.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.dgMain_PageIndexChanged);
this.cmdSelectAll.Click += new System.EventHandler(this.cmdSelectAll_Click);
this.cmdFindSelected.Click += new System.EventHandler(this.cmdFindSelected_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void cmdSelectAll_Click(object sender, System.EventArgs e)
{
selectAll();
}

private void selectAll()
{
System.Web.UI.WebControls.CheckBox chkExport ;
if( cmdSelectAll.Text == "全部选中 ")
{
foreach(DataGridItem oDataGridItem in dgMain.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl( "chkExport ");
chkExport.Checked = true;
}
cmdSelectAll.Text = "全部不选 ";
}
else
{
foreach(DataGridItem oDataGridItem in dgMain.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl( "chkExport ");
chkExport.Checked = false;
}
cmdSelectAll.Text = "全部选中 ";


}
}

private void RefreshGrid()
{
SqlDataAdapter sqlda ;
DataSet ds = new DataSet();
try
{
string sSQL = "Select * from authors ";
SqlConnection sqlcon = new SqlConnection(ConfigurationSettings.AppSettings[ "ConnectionString1 "]);
sqlda = new SqlDataAdapter(sSQL.ToString(),sqlcon);
sqlda.Fill(ds, "authors ");
oDataView = new DataView(ds.Tables[ "authors "]);
dgMain.DataSource = oDataView;
sqlcon.Close();
}
catch(Exception ex)
{
Label1.Text = ex.Message.ToString();
}
dgMain.DataBind();
}

private void cmdFindSelected_Click(object sender, System.EventArgs e)
{
System.Web.UI.WebControls.CheckBox chkExport;
System.Collections.ArrayList oExArgs = new System.Collections.ArrayList();
Label1.Text = " ";
Label2.Text = " ";
foreach(DataGridItem oDataGridItem in dgMain.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl( "chkExport ");
if(chkExport.Checked)
{
//如果要进行删除,可以在这里构造sql语句进行删除
string sql = "DELETE FROM authors WHERE au_id = "
+ ((HtmlInputHidden)oDataGridItem.FindControl( "SelectedID ")).Value;
SqlConnection sqlcon=new SqlConnection(ConfigurationSettings.AppSettings[ "connectionString1 "]);
SqlCommand cmd=new SqlCommand(sql,sqlcon);
sqlcon.Open();
try
{
cmd.ExecuteNonQuery();
}
catch(Exception ex)
{
Response.Write(ex.ToString());
}
sqlcon.Close();
}
}
RefreshGrid();
}


private void dgMain_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
dgMain.CurrentPageIndex=e.NewPageIndex;
RefreshGrid();
}
}
}


[解决办法]
((Label)oDataGridItem.FindControl( "lblColumn ")).Text
[解决办法]
((Label)oDataGridItem.FindControl( "lblColumn ")).Text

读书人网 >asp.net

热点推荐