`
caozuiba
  • 浏览: 904752 次
文章分类
社区版块
存档分类
最新评论

功能齐全的DataGrid

阅读更多
//目前功能:排序、单选项、复选项、合并单元格、产生序列号、联动下拉框、编辑、删除、超连接、鼠标移动改变颜色、奇偶项颜色区分等
1.html代码
<HTML>
<HEAD>
<title>DatagridTest</title>
<metacontent="MicrosoftVisualStudio.NET7.1"name="GENERATOR">
<metacontent="C#"name="CODE_LANGUAGE">
<metacontent="JavaScript"name="vs_defaultClientScript">
<metacontent="http://schemas.microsoft.com/intellisense/ie5"name="vs_targetSchema">
<scriptlanguage="javascript">
functionfun_option(obj)
{
document.Form1.hiduserid.value
=obj.value;
}

functionchkAll_true()
{
varchkall=document.all["chkAll"];
varchkother=document.all["chkExport"];
if(chkother.length>0)
{
for(vari=0;i<chkother.length;i++)
{
if(chkall.checked==true)
{
chkother[i].checked
=true;
}

else
{
chkother[i].checked
=false;
}

}

}

}


functionDelete()
{
//debugger;
varchkother=document.all["chkExport"];
vartemp="";
if(chkother.length>0)
{
for(vari=0;i<chkother.length;i++)
{
if(chkother[i].checked=true)
{
temp
+=","+chkother[i].value;
}

}

temp
=temp.substring(1,temp.length);
}

if(temp=="")
{
alert('Youneedtoselectarow
inthelistbeforeselectingDelete./r/nPleaseselectarowandtryagain.');
}

elseif(window.confirm("Areyousuretodeleteallthese?"))
{
document.Form1.hiduserid.value
=temp;
vardeleteID='<%=btndelete.ClientID%>';
window.document.all(deleteID).click();
}

event.cancelBubble
=true;
}

</script>
</HEAD>
<body>
<formid="Form1"method="post"runat="server">
<TABLEid="Table1"height="100%"cellSpacing="1"cellPadding="1"width="100%"border="1">
<trheight="30">
<td><INPUTid="chkAll"onclick="chkAll_true()"type="checkbox">全选/取消<asp:buttonid="btndelete"runat="server"Text="删除"></asp:button></td>
</tr>
<TRvAlign="top">
<TDwidth="100%"colSpan="5"><asp:datagridid="DataGrid1"runat="server"OnEditCommand="Edit"OnCancelCommand="Cancel"OnUpdateCommand="Update"
DataKeyField
="UserID"AutoGenerateColumns="False"AllowSorting="True"BorderColor="Tan"BorderWidth="1px"BackColor="LightGoldenrodYellow"
CellPadding
="2"GridLines="None"ForeColor="Black"OnDeleteCommand="Delete">
<FooterStyleBackColor="Tan"></FooterStyle>
<SelectedItemStyleForeColor="GhostWhite"BackColor="DarkSlateBlue"></SelectedItemStyle>
<AlternatingItemStyleBackColor="PaleGoldenrod"></AlternatingItemStyle>
<HeaderStyleFont-Bold="True"BackColor="Tan"></HeaderStyle>
<Columns>
<asp:TemplateColumnHeaderText="序号">
<ItemTemplate>
<INPUTid=radioonclick=fun_option(this)type=radiovalue='<%#DataBinder.Eval(Container.DataItem,"UserID")%>'name=radio>
</ItemTemplate>
<FooterTemplate>
</FooterTemplate>
</asp:TemplateColumn>
<asp:TemplateColumnHeaderText="序号">
<FooterTemplate>
</FooterTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
<INPUTid="chkExport"type="checkbox"value='<%#DataBinder.Eval(Container.DataItem,"UserID")%>'>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumnDataField="UserID"SortExpression="UserID"ReadOnly="True"HeaderText="UserID"></asp:BoundColumn>
<asp:TemplateColumnSortExpression="UserName"HeaderText="姓名">
<ItemTemplate>
<ahref="http://singlepine.cnblogs.com/articles/266538.html"target="_blank">
<%#DataBinder.Eval(Container.DataItem,"UserName")%>
</a>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBoxid=UserNameText='<%#DataBinder.Eval(Container.DataItem,"UserName")%>'Width="88px"Runat="server">
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumnSortExpression="province"HeaderText="省市">
<ItemTemplate>
<%#DataBinder.Eval(Container.DataItem,"province")%>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownListid="province"Runat="server"AutoPostBack="True"OnSelectedIndexChanged="ddlpovince_SelectedIndexChanged"></asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumnSortExpression="city"HeaderText="县市">
<ItemTemplate>
<%#DataBinder.Eval(Container.DataItem,"city")%>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownListid="city"Runat="server"></asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumnSortExpression="Enabled"HeaderText="可见否">
<ItemTemplate>
<%#DataBinder.Eval(Container.DataItem,"Enabled")%>
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBoxid=chkenabledRunat="server"Checked='<%#DataBinder.Eval(Container.DataItem,"Enabled")%>'>
</asp:CheckBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:EditCommandColumnButtonType="PushButton"UpdateText="更新"HeaderText="编辑"CancelText="取消"EditText="编辑"></asp:EditCommandColumn>
<asp:ButtonColumnText="删除"ButtonType="PushButton"HeaderText="删除"CommandName="Delete"></asp:ButtonColumn>
</Columns>
<PagerStyleNextPageText="下一页"PrevPageText="上一页"HorizontalAlign="Right"ForeColor="DarkSlateBlue"
BackColor
="PaleGoldenrod"></PagerStyle>
</asp:datagrid></TD>
</TR>
<trheight="30">
<td></td>
</tr>
</TABLE>
<INPUTid="hiduserid"type="hidden"runat="server">
</form>
</body>
</HTML>
2.cs代码
publicclassDatagridTest:System.Web.UI.Page
{
protectedSystem.Web.UI.WebControls.DataGridDataGrid1;
protectedSystem.Web.UI.HtmlControls.HtmlInputHiddenhiduserid;
protectedSystem.Web.UI.WebControls.Buttonbtndelete;

privatestringconstring="";

//目前功能:编辑、排序、单选项、复选项、合并单元格、产生序列号、联动下拉框、删除、超连接、鼠标移动改变颜色、奇偶项颜色区分
privatevoidPage_Load(objectsender,System.EventArgse)
{
if(!Page.IsPostBack)
{
btndelete.Attributes.Add(
"onclick","Delete();");
SortExpression
="";
sort
="desc";
DataBind();
}

}



DataBind#regionDataBind
privatevoidDataBind()
{
stringsql="selecta.UserID,a.UserName,b.province,c.city,a.Enabled,b.provinceID,c.cityIDfromtestgrida";
sql
+="leftjoinpovincebona.Country=b.provinceID";
sql
+="leftjoincitycona.State=c.cityID";
DataSetds
=GetDataSet(sql);
dt
=ds.Tables[0];
this.DataGrid1.DataSource=dt;
this.DataGrid1.DataBind();
}

#endregion


WebFormDesignergeneratedcode#regionWebFormDesignergeneratedcode
overrideprotectedvoidOnInit(EventArgse)
{
//
//CODEGEN:ThiscallisrequiredbytheASP.NETWebFormDesigner.
//
InitializeComponent();
base.OnInit(e);
this.DataGrid1.ItemDataBound+=newDataGridItemEventHandler(DataGrid1_ItemDataBound);
this.DataGrid1.SortCommand+=newDataGridSortCommandEventHandler(DataGrid1_SortCommand);
this.DataGrid1.ItemCreated+=newDataGridItemEventHandler(DataGrid1_ItemCreated);
this.btndelete.Click+=newSystem.EventHandler(this.btndelete_Click);
}


/**////<summary>
///RequiredmethodforDesignersupport-donotmodify
///thecontentsofthismethodwiththecodeeditor.
///</summary>

privatevoidInitializeComponent()
{
this.Load+=newSystem.EventHandler(this.Page_Load);

}

#endregion


GetDataSet#regionGetDataSet
privateDataSetGetDataSet(stringsql)
{
constring
=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
SqlDataAdaptersda
=newSqlDataAdapter(sql,constring);
DataSetds
=newDataSet();
sda.Fill(ds);
returnds;
}

#endregion


DataGrid1_ItemDataBound#regionDataGrid1_ItemDataBound
privatevoidDataGrid1_ItemDataBound(objectsender,DataGridItemEventArgse)
{
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
{
e.Item.Attributes.Add(
"ondblclick","alert('"+e.Item.Cells[3].Text+"');");
}

if(e.Item.ItemType!=ListItemType.Header)
 
{
if(e.Item.ItemIndex%2==0)
{
e.Item.Attributes.Add(
"onmouseout","this.style.backgroundColor='PaleGoldenrod'");
}

else
{
e.Item.Attributes.Add(
"onmouseout","this.style.backgroundColor='LightGoldenrodYellow'");
}

  e.Item.Attributes.Add(
"onmouseover","this.style.backgroundColor='#C1D2EE'");
e.Item.Cells[
1].Text=Convert.ToString(e.Item.ItemIndex+1);//产生序号
 }

if(e.Item.ItemType==ListItemType.Header)
 
{
e.Item.Cells[
0].ColumnSpan=2;//合并单元格
e.Item.Cells[1].Visible=false;
 }

stringsqlpovince="select*frompovince";
DataSetdspovince
=GetDataSet(sqlpovince);
if(e.Item.ItemType==ListItemType.EditItem)
{
DropDownListddlpovince
=(DropDownList)e.Item.FindControl("province");
ddlpovince.DataSource
=dspovince;
ddlpovince.DataTextField
="province";
ddlpovince.DataValueField
="provinceID";
ddlpovince.DataBind();
ddlpovince.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,
"provinceID"))).Selected=true;
if(e.Item.ItemType==ListItemType.EditItem)
{
if(ddlpovince.SelectedIndex!=-1)
{
stringsqlcity="select*fromcitywherefather='"+ddlpovince.SelectedValue+"'";
DropDownListddlcity
=(DropDownList)e.Item.FindControl("city");
DataSetdscity
=GetDataSet(sqlcity);
ddlcity.DataSource
=dscity;
ddlcity.DataTextField
="city";
ddlcity.DataValueField
="cityID";
ddlcity.DataBind();
ddlcity.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,
"cityID"))).Selected=true;
}

}

}

}


#endregion


DataGrid1_SortCommand#regionDataGrid1_SortCommand
privatevoidDataGrid1_SortCommand(objectsource,DataGridSortCommandEventArgse)
{
if(SortExpression==e.SortExpression.ToString())
{
if(sort=="asc")
{
sort
="desc";
}

else
{
sort
="asc";
}

}

else
{
if(sort=="asc")
{
sort
="desc";
}

else
{
sort
="asc";
}

}

SortExpression
=e.SortExpression;
dt.DefaultView.Sort
=e.SortExpression+""+sort;
DataGrid1.DataSource
=dt;
DataGrid1.DataBind();
}

#endregion


DataGrid1_ItemCreated#regionDataGrid1_ItemCreated
privatevoidDataGrid1_ItemCreated(objectsender,DataGridItemEventArgse)
{
for(inti=3;i<DataGrid1.Columns.Count-2;i++)//-2的意思是两个button列不用排序
{
if(i==0)continue;
if(e.Item.ItemIndex==-1)
{
if(DataGrid1.Columns[i].SortExpression==SortExpression)
{
TableCelltableCell
=e.Item.Cells[i];
Labellabel
=newLabel();
label.Font.Name
="webdings";
if(sort=="asc")
{
label.Text
="6";
}

else
{
label.Text
="5";
}

label.Width
=20;
tableCell.Controls.Add(label);
}

}

}

foreach(DataGridItemdiinthis.DataGrid1.Items)
 
{
if(di.ItemType==ListItemType.Item||di.ItemType==ListItemType.AlternatingItem)
  
{
   ((Button)di.Cells[
9].Controls[0]).Attributes.Add("onclick","returnconfirm('确认删除此项吗?');");
  }

}

}



#endregion


property#regionproperty
privateDataTabledt
{
get
{
if(ViewState["dt"]!=null)
{
return(DataTable)ViewState["dt"];
}

else
{
returnnull;
}

}

set
{
ViewState[
"dt"]=value;
}

}

privatestringSortExpression
{
get
{
if(ViewState["SortExpression"]!=null&&ViewState["SortExpression"].ToString()!=string.Empty)
{
returnViewState["SortExpression"].ToString();
}

else
{
return"";
}

}

set
{
ViewState[
"SortExpression"]=value;
}

}

privatestringsort
{
get
{
if(ViewState["sort"]!=null&&ViewState["sort"].ToString()!=string.Empty)
{
returnViewState["sort"].ToString();
}

else
{
return"";
}

}

set
{
ViewState[
"sort"]=value;
}

}

#endregion


Edit#regionEdit
protectedvoidEdit(objectsender,DataGridCommandEventArgse)
{
this.DataGrid1.EditItemIndex=e.Item.ItemIndex;
DataBind();
}

#endregion


Cancel#regionCancel
protectedvoidCancel(objectsender,DataGridCommandEventArgse)
{
this.DataGrid1.EditItemIndex=-1;
DataBind();
}

#endregion


Update#regionUpdate
protectedvoidUpdate(objectsender,DataGridCommandEventArgse)
{
if(e.Item.ItemType==ListItemType.EditItem)
{
SqlConnectionconn
=newSqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommandcomm
=newSqlCommand("updatetestgridsetUserName=@UserName,Country=@province,State=@city,Enabled=@EnabledwhereUserID=@UserID",conn);
SqlParameterparm1
=newSqlParameter("@UserName",SqlDbType.NVarChar,50);
parm1.Value
=((TextBox)e.Item.FindControl("UserName")).Text;

SqlParameterparm2
=newSqlParameter("@province",SqlDbType.NVarChar,50);
parm2.Value
=((DropDownList)e.Item.FindControl("province")).SelectedValue;

SqlParameterparm3
=newSqlParameter("@city",SqlDbType.NVarChar,50);
parm3.Value
=((DropDownList)e.Item.FindControl("city")).SelectedValue;

SqlParameterparm4
=newSqlParameter("@Enabled",SqlDbType.Bit);
parm4.Value
=((CheckBox)e.Item.FindControl("chkenabled")).Checked;


SqlParameterparm5
=newSqlParameter("@UserID",SqlDbType.Int);
parm5.Value
=this.DataGrid1.DataKeys[e.Item.ItemIndex];

comm.Parameters.Add(parm1);
comm.Parameters.Add(parm2);
comm.Parameters.Add(parm3);
comm.Parameters.Add(parm4);
comm.Parameters.Add(parm5);
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
this.DataGrid1.EditItemIndex=-1;
DataBind();
}

}

#endregion


Deleteevent#regionDeleteevent
protectedvoidDelete(objectsender,DataGridCommandEventArgse)
{
delete(
this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString());
}

#endregion


ddlpovince_SelectedIndexChanged#regionddlpovince_SelectedIndexChanged
publicvoidddlpovince_SelectedIndexChanged(objectsender,EventArgse)
{
DropDownListddlpovince
=senderasDropDownList;
if(ddlpovince.SelectedIndex!=-1)
{
DropDownListddlcity
=((Control)(((Control)sender)).Parent).FindControl("city")asDropDownList;
stringsqlcity="select*fromcitywherefather='"+ddlpovince.SelectedValue+"'";
DataSetdscity
=GetDataSet(sqlcity);
ddlcity.DataSource
=dscity;
ddlcity.DataTextField
="city";
ddlcity.DataValueField
="cityID";
ddlcity.DataBind();
}

}

#endregion


btndelete_Click#regionbtndelete_Click
privatevoidbtndelete_Click(objectsender,System.EventArgse)
{
string[]delid=this.hiduserid.Value.Split(',');
for(intm=0;m<delid.Length;m++)
{
delete(delid[m]);
}

}

#endregion


delete#regiondelete
privatevoiddelete(stringid)
{
SqlConnectionconn
=newSqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommandcomm
=newSqlCommand("deletefromtestgridwhereUserID=@UserID",conn);
SqlParameterparm1
=newSqlParameter("@UserID",SqlDbType.Int);
parm1.Value
=Convert.ToInt32(id);
comm.Parameters.Add(parm1);
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
DataBind();
}

#endregion

}
3.数据库教本(或下载真实数据/Files/singlepine/area.rar)
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[TestGrid]')andOBJECTPROPERTY(id,N'IsUserTable')=1)
droptable[dbo].[TestGrid]
GO

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[city]')andOBJECTPROPERTY(id,N'IsUserTable')=1)
droptable[dbo].[city]
GO

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[povince]')andOBJECTPROPERTY(id,N'IsUserTable')=1)
droptable[dbo].[povince]
GO

CREATETABLE[dbo].[TestGrid](
[UserID][int]NOTNULL,
[UserName][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL,
[Country][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL,
[State][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL,
[Enabled][bit]NULL
)
ON[PRIMARY]
GO

CREATETABLE[dbo].[city](
[id][int]NOTNULL,
[cityID][nvarchar](6)COLLATEChinese_PRC_CI_ASNULL,
[city][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL,
[father][nvarchar](6)COLLATEChinese_PRC_CI_ASNULL
)
ON[PRIMARY]
GO

CREATETABLE[dbo].[povince](
[id][int]NOTNULL,
[provinceID][nvarchar](6)COLLATEChinese_PRC_CI_ASNULL,
[province][nvarchar](40)COLLATEChinese_PRC_CI_ASNULL
)
ON[PRIMARY]
GO
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics