<!--
.lineBorderBlue1
{
BORDER-TOP: #999999 1px groove;
BORDER-BOTTOM: #999999 1px groove;
BORDER-LEFT: #999999 1px groove;
BORDER-RIGHT: #999999 1px groove;
background-color:#efefef;
}
--> 本例用代码实现了创建DataGrid并响应了CheckBox事件,并实现了超链接列的多变量传送。
创建一个前台页面
CreateDataGrid.aspx:
在Form中添加一个PlcaeHolder,ID为"ph",Runat="Server"
后台页面
CreateDatagrid.aspx.cs
publicclassCreateDataGrid:System.Web.UI.Page ...{ publicStringsql="SelectFirstName,LastName,HomePhone,TitleFROMEmployees"; publicDataGridmygrid=newDataGrid(); protectedSystem.Web.UI.WebControls.PlaceHolderph; publicStringSortExpression; privatevoidPage_Load(objectsender,System.EventArgse) ...{ //CreateDataGridForm.Controls.Add(MakeGrid());
this.ph.Controls.Add(MakeGrid()); } //protectedoverridevoidCreateChildControls() //{
//base.CreateChildControls(); //}
Web窗体设计器生成的代码#regionWeb窗体设计器生成的代码 overrideprotectedvoidOnInit(EventArgse) ...{ // //CODEGEN:该调用是ASP.NETWeb窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); }
/**////<summary> ///设计器支持所需的方法-不要使用代码编辑器修改 ///此方法的内容。 ///</summary> privatevoidInitializeComponent() ...{ this.Load+=newSystem.EventHandler(this.Page_Load);
} #endregion /**////<summary> ///创建一个模板列和一个列模板 ///</summary>
publicTemplateColumntm=newTemplateColumn(); publicColumnTemplatemycol=newColumnTemplate();
//返回DataView publicDataViewCreateDataSource() ...{ stringstrSql; strSql="DataSource=localhost;InitialCatalog=Northwind;UserId=sa;Password=sa;"; SqlConnectionconn=newSqlConnection(strSql); SqlDataAdapterdb_sqladaptor=newSqlDataAdapter(sql,conn); DataSetds=newDataSet(); db_sqladaptor.Fill(ds,"Employees"); DataViewmyView=ds.Tables["Employees"].DefaultView; //myView.Sort=SortExpression; //Response.Write(sql); returnmyView; }
/**////<summary> ///处理排序 ///</summary> ///<paramname="sender"></param> ///<paramname="e"></param> publicvoidSort_Grid(Objectsender,DataGridSortCommandEventArgse) ...{ SortExpression=e.SortExpression.ToString(); Session["SortField"]=SortExpression.Trim(); if(Session["Order"]==null)Session["Order"]="ASC"; Session["Order"]=(Session["Order"].ToString()=="DESC")?"ASC":"DESC"; if(Session["SortField"]==null)Session["SortField"]="FirstName"; sql+="ORDERBY"+Session["SortField"].ToString()+""+Session["Order"].ToString(); mygrid.DataSource=CreateDataSource(); mygrid.DataBind(); } /**////<summary> ///创建和设置DataGrid属性,这里的属性设置为固定值,但也可以动态设置 ///</summary> ///<returns></returns>
publicDataGridMakeGrid() ...{ mygrid.CellPadding=2; mygrid.Attributes.Add("align","center"); mygrid.CellSpacing=0; mygrid.Width=500; mygrid.BorderWidth=1; mygrid.BorderColor=ColorTranslator.FromHtml("Black"); mygrid.AutoGenerateColumns=false; mygrid.ForeColor=ColorTranslator.FromHtml("Black"); mygrid.Font.Size=9; mygrid.Font.Name="宋体"; mygrid.AllowSorting=true;
/**////sort命令的事件处理器
//mygrid.SortCommand+=newDataGridSortCommandEventHandler(Sort_Grid); mygrid.ItemDataBound+=newDataGridItemEventHandler(mygrid_ItemDataBound);
/**////设置headerstyle mygrid.HeaderStyle.BackColor=ColorTranslator.FromHtml("Gold"); mygrid.HeaderStyle.ForeColor=ColorTranslator.FromHtml("Black"); mygrid.HeaderStyle.Font.Name="宋体"; mygrid.HeaderStyle.Font.Size=9; mygrid.HeaderStyle.Font.Bold=true; mygrid.HeaderStyle.HorizontalAlign=HorizontalAlign.Center;
/**////设置alternatingstyle mygrid.AlternatingItemStyle.BackColor=ColorTranslator.FromHtml("Silver"); mygrid.AlternatingItemStyle.ForeColor=ColorTranslator.FromHtml("Black");
/**////设置itemstyle mygrid.ItemStyle.HorizontalAlign=HorizontalAlign.Left;
/**////创建绑定列和属性
HyperLinkColumnFirstName=newHyperLinkColumn(); BoundColumnLastName=newBoundColumn(); BoundColumnHomePhone=newBoundColumn(); BoundColumnTitle=newBoundColumn();
//FirstName.HeaderText="名字"; //FirstName.DataField="FirstName"; //FirstName.SortExpression="FirstName";
FirstName.HeaderText="名字";
FirstName.DataTextField="FirstName"; FirstName.SortExpression="FirstName"; FirstName.NavigateUrl="http://localhost/test.aspx";
LastName.HeaderText="姓"; LastName.DataField="LastName"; LastName.SortExpression="LastName";
HomePhone.HeaderText="电话"; HomePhone.DataField="HomePhone"; HomePhone.SortExpression="HomePhone";
Title.HeaderText="职务"; Title.DataField="Title"; Title.SortExpression="Title";
mygrid.Columns.AddAt(0,FirstName); mygrid.Columns.AddAt(1,LastName); mygrid.Columns.AddAt(2,HomePhone); mygrid.Columns.AddAt(3,Title);
/**////设置模板列属性和ItemStyle模板 tm.HeaderText="**删除信息**"; tm.HeaderStyle.HorizontalAlign=HorizontalAlign.Center; tm.ItemStyle.BackColor=ColorTranslator.FromHtml("#FFF778"); tm.ItemStyle.HorizontalAlign=HorizontalAlign.Center;
TemplateColumnaa=newTemplateColumn(); ColumnTemplate1tt=newColumnTemplate1(); aa.ItemTemplate=tt;
/**////创建列模板。 ///列模板从ITemplate继承 tm.ItemTemplate=mycol; mygrid.Columns.AddAt(4,tm); mygrid.Columns.AddAt(5,aa);
/**////绑定和返回 mygrid.DataSource=CreateDataSource(); mygrid.DataBind(); returnmygrid; }
privatevoidmygrid_ItemDataBound(objectsender,DataGridItemEventArgse) ...{ if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem) ...{ HyperLinklink=(HyperLink)e.Item.Cells[0].Controls[0]; stringurl=link.NavigateUrl; //实现多参数链接 url+="?id="+e.Item.Cells[1].Text+"&id2="+e.Item.Cells[2].Text; link.NavigateUrl=url; } } }
|
|
再添加关键的几段
/**////ColumnTemplate从ITemplate继承。 ///"InstantiateIn"定义子控件的属于谁 publicclassColumnTemplate:ITemplate ...{
publicvoidInstantiateIn(Controlcontainer) ...{ LabelmyLabel=newLabel(); myLabel.Text="点击删除"; CheckBoxmycheckbox=newCheckBox(); container.Controls.Add(myLabel); container.Controls.Add(mycheckbox); }
}
|
添加CheckBox事件:
publicclassColumnTemplate1:ITemplate ...{
publicvoidInstantiateIn(Controlcontainer) ...{ LabelmyLabel=newLabel(); myLabel.Text="test"; CheckBoxlnk=newCheckBox(); lnk.AutoPostBack=true; lnk.CheckedChanged+=newEventHandler(lnk_CheckedChanged); container.Controls.Add(myLabel); container.Controls.Add(lnk); }
privatevoidlnk_CheckedChanged(objectsender,EventArgse) ...{ CheckBoxlnk=(CheckBox)sender; DataGriddg=(DataGrid)lnk.NamingContainer.NamingContainer; if(dg==null)return; //实现CheckBox事件响应 DataGridItemdi=(DataGridItem)lnk.NamingContainer; HyperLinklnkID=(HyperLink)di.Cells[0].Controls[0]; strings2=lnkID.Text.Trim()+lnk.ID+"被选中了!"; } }
|
分享到:
相关推荐
WPF中DataGrid里面的Checkbox实现单选关键代码, 文档里面的代码复制粘贴即可实现!本人也是项目需要写的一个功能11行代码实现此功能! 希望可以帮助到你们!
绝对好东西,datagrid 标题栏及 datagridcolumn 添加 checkbox
wpf 下DataGrid表头包含checkbox,实现多选功能,wpf 下DataGrid表头包含checkbox,实现多选功能
项目中用到DataGrid, 需要在第一列添加checkbox, 可以多选、全选。 其中涉及的概念DataTemplate, DataGridCellStyle, DataGridCellControlTemplate,Binding, OnPropertyChanged等。
Datagrid键盘事件响应
实现了向dataGrid中添加checkBox的功能,可以支持多选,单选,全选。
本实例是在datagrid里插入多列Checkbox的应用,不存在拖动下拉条混乱问题,里面代码很简单,但希望可以帮到你。
其中包含一个三种状态的checkbox,DataGrid代码中引用了 带多选框的DataGrid(AdvancedDataGrid) 表头有全选CheckBox,三种状态:全选、部分选择、无选择 如果改变目录结构,需要在CustomCheckBox.mxml中更改inner....
Flex的DataGrid中使用CheckBox. 大家共同研究
可以通过简单的一个标签实现一个表的checkbox功能,当然我才学了不到一个星期,可以在原来的基础上进行扩展,希望交流下我的邮箱是llaysz@163.com,如果大家把它变强大了记得给我发一份谢谢了
NULL 博文链接:https://taomujian.iteye.com/blog/294748
flex Datagrid checkbox全选 Datagrid
NULL 博文链接:https://yunzhongxia.iteye.com/blog/652902
2.0DataGrid嵌套DataGrid,里面的鼠标滚动响应到外部,利用自定义命令传递滚轮事件参数实现,详细效果请移步: https://blog.csdn.net/u010438205/article/details/105710794
在Flex的DataGrid中使用CheckBox 欢迎分享
主要介绍了C#实现给DataGrid单元行添加双击事件的方法,较为详细的分析了C#给DataGrid单元添加双击事件的步骤及相关实现代码,具有一定参考借鉴价值,需要的朋友可以参考下
前台使用Jquery EasyUI 插件datagrid实现多表头动态生成的功能
成功的实现了,datagrid中嵌套checkbox实现全选的功能。分享代码供大家分享。项目为flex3。
silverlight 4 + vs 2010 + xp 实现了dataGrid双击一行响应事件,代码大不份来自网络,自己做了个Dome 免分下载
可以直接运行datagridview checkbox 支持全选 反选功能