知识大全 DataGrid使用心得(附大量代码)
Posted 编辑
篇首语:丈夫不报国,终为愚贱人。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 DataGrid使用心得(附大量代码)相关的知识,希望对你有一定的参考价值。
DataGrid使用心得(附大量代码) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
为DataGrid控件设计样式 在<asp:datagridid= DataGrid runat= server >之后添加如下代码 <FooterStyleForeColor= Black BackColor= #CCCCCC ></FooterStyle> <SelectedItemStyleFont Bold= True ForeColor= White BackColor= # A C ></SelectedItemStyle> <AlternatingItemStyleBackColor= Gainsboro ></AlternatingItemStyle> <ItemStyleForeColor= Black BackColor= #EEEEEE ></ItemStyle> <HeaderStyleFont Bold= True ForeColor= White BackColor= # ></HeaderStyle> 说明: ( )在每个标签内主要是 ForeColor BackColor Font Bold这几个属性值 为DataGrid控件添加绑定列 <asp:BoundColumnDataField= ReadOnly= True HeaderText= ></asp:BoundColumn> 说明: ( )在标签内的基本属性是DataField/HeaderText ( )DataFormatString用于获取或设置指定列中各项的显示格式的字符串 形式为A:Bxx 例如 格式化字符串 :F 将显示带两位小数的定点数 其中A值只能设置为 因为每个单元格中只有一个值 冒号后的字符(常规示例中为B)指定值的显示格式 C 以货币格式显示数值 D 以十进制格式显示数值 E 以科学记数法(指数)格式显示数值 F 以固定格式显示数值 G 以常规格式显示数值 N 以数字格式显示数值 X 以十六进制格式显示数值 ( )Visible获取或设置一个值 该值指示此列在DataGrid控件中是否可见 ( )ReadOnly设置些列是否只读 若是只读的话 则不能修改 ( )SortExpression获取或设置选择进行排序的列时传递到OnSortCommand方法的字段或表达式的名称
为DataGrid控件添加模板列 <asp:TemplateColumnHeaderText= 类别 > <ItemTemplate> <asp:LabelText= <%#DataBinder Eval(Container DataItem actorclassname )%> runat= server ID= Label /> </ItemTemplate> <EditItemTemplate> <selectname= sltclassname > <%=ActorClass GetParentClass( )%> </select> </EditItemTemplate> </asp:TemplateColumn>说明: ( )基本框架是 <asp:TemplateColumnHeaderText= 类别 > <ItemTemplate></ItemTemplate> </asp:TemplateColumn> ( )全面的模板列 <asp:TemplateColumn>
<HeaderTemplate> <b>Tax</b> </HeaderTemplate>
<ItemTemplate> <asp:Label Text= <%#DataBinder Eval(Container DataItem Tax )%> runat= server /> </ItemTemplate>
<EditItemTemplate>
<asp:CheckBox Text= Taxable runat= server />
</EditItemTemplate>
<FooterTemplate> <asp:HyperLinkid= HyperLink Text= Microsoft NavigateUrl= runat= server /> </FooterTemplate>
</asp:TemplateColumn> ( )为布尔型列应用模板列 <asp:TemplateColumn> <ItemTemplate> <asp:Label Text= <%#DataBinder Eval(Container DataItem Tax )%> runat= server /> </ItemTemplate> <EditItemTemplate> <asp:CheckBox Text= Taxable runat= server />
</EditItemTemplate> </asp:TemplateColumn> 在正常状态 用Label控件显示 在编辑状态 用CheckBox控件显示 ( ) 为枚举类型列应用模板列 如业务地区(全网/广东/云南等等) <asp:TemplateColumnHeaderText= 处理方式 > <ItemTemplate> <asp:LabelID= lbStatus > <%#DataBinder Eval(Container DataItem DealWith )%> </asp:Label> </ItemTemplate> <EditItemTemplate> <asp:DropDownListid= dpStatus runat= server DataTextField= status > <asp:ListItemValue= Log >Log(日志)</asp:ListItem> <asp:ListItemValue= SendSms >SendSms(短信)</asp:ListItem> </asp:DropDownList> </EditItemTemplate> </asp:TemplateColumn> 在正常状态 用Label控件显示 在编辑状态 用DropDownList控件显示 ( )为长字符串应用模板列 如一篇文章的内容 还未做过 为DataGrid控件添加按钮列 <asp:ButtonColumn HeaderText= Removefromcart ButtonType= PushButton Text= Remove CommandName= RemoveFromCart /> ( )要使用按钮列 必须在DataGrid控件中添加OnItemCommand属性 并为该事件添加处理方法 ( )模板列可以实现按钮列能实现的任何功能 为DataGrid控件添加编辑列 <asp:EditCommandColumnButtonType= LinkButton UpdateText= 更新 HeaderText= 编辑 CancelText= 取消 EditText= 编辑 ></asp:EditCommandColumn> ( )ButtonType有两个值:LinkButton超级链接样式按钮的列|PushButton普通按钮的列
为DataGrid控件添加超链接列 <asp:HyperLinkColumnText= 添加子类 DataNavigateUrlField= ActorclassID DataNavigateUrlFormatString= addActorClass aspx?classID= ></asp:HyperLinkColumn> ( )为每一行设置相同的文字及跳转的URL地址 设置Text和NavigateUrl属性 则列中的所有超级链接将共享同一标题和URL ( )为每一行设置不同的文字及不同跳转的URL地址 A 用DataTextField设置数据源字段 若还想在原数据的基础上加工一下(如字段值为 想显示为 元) 则再设置DataTextFormatString字段 B 用DataNavigateUrlField及DataNavigateUrlFormatString来设置URL地址 用DataTextField= money DataTextFormatString= 元 C 举例 DataNavigateUrlField= ActorclassID DataNavigateUrlFormatString= addActorClass aspx?classID= 为DataGrid控件添加 编辑 代码 在DataGrid标签中加入 OnUpdateCommand= DataGrid _Update OnCancelCommand= DataGrid _Cancel OnEditCommand= DataGrid _Edit 代码 在codeBehind页面加入如下代码 ///响应编辑按钮 publicvoidDataGrid _Edit(Objectsender DataGridCommandEventArgse) DataGrid EditItemIndex=e Item ItemIndex; if(Request QueryString Get( classID )!=null) Common BindData(DataGrid Common GetSource( select*fromActorClasswhereparentID= +Request QueryString Get( classID )+ orderbydepth orderIDdesc )); else Common BindData(DataGrid Common GetSource( select*fromActorClasswheredepth= orderbydepth orderIDdesc )); ///响应取消按钮 publicvoidDataGrid _Cancel(Objectsender DataGridCommandEventArgse) DataGrid EditItemIndex= ; if(Request QueryString Get( classID )!=null) Common BindData(DataGrid Common GetSource( select*fromActorClasswhereparentID= +Request QueryString Get( classID )+ orderbydepth orderIDdesc )); else Common BindData(DataGrid Common GetSource( select*fromActorClasswheredepth= orderbydepth orderIDdesc ));
///响应更新按钮 publicvoidDataGrid _Update(Objectsender DataGridCommandEventArgse) TextBoxClassNameText=(TextBox)e Item Cells[ ] Controls[ ]; stringclassName=ClassNameText Text; intclassID=Int Parse((e Item Cells[ ] Text) ToString()); TextBoxorderID =(TextBox)e Item Cells[ ] Controls[ ]; intorderID=Int Parse(orderID Text); ActorClass ModifyActorClass(className classID orderID);
DataGrid EditItemIndex= ; if(Request QueryString Get( classID )!=null) Common BindData(DataGrid Common GetSource( select*fromActorClasswhereparentID= +Request QueryString Get( classID )+ orderbydepth orderIDdesc )); else Common BindData(DataGrid Common GetSource( select*fromActorClasswheredepth= orderbydepth orderIDdesc )); 说明 ( )DataGrid事件处理程序的格式 MethodName(Objectsender DataGridCommandEventArgse) ( )更新按钮的说明 A 获取编辑状态中的文本框 TextBoxClassNameText=(TextBox)e Item Cells[ ] Controls[ ]; stringclassName=ClassNameText Text; B 获取编辑状态中的下拉列表框 方法一 intclassID; classID=Int Parse(Request Form Get( sltclassname )); 方法二 DropDownListbbb=(DropDownList)e Item Cells[ ] FindControl( dpStatus ); stringddpValue=bbb SelectedValue C 获取编辑状态中的复选框 boolboolEnabled=((CheckBox)e Item FindControl( c_enabled )) Checked; Stringstr ; if(boolEnabled) str = ; else str = ; 赋值给str 原因是插入到数据库的布尔型值只能是 或者 D 获取编辑状态中的文本值 即该列是只读的 stringstoryID=(e Item Cells[ ] Text) ToString();
为DataGrid控件添加分页事件 在DataGrid控件标签中加入如下代码 OnPageIndexChanged= DataGrid _PageIndexChanged 在后台中加入如下代码 ///<summary> ///响应分页事件 ///</summary> ///<paramname= sender ></param> ///<paramname= e ></param> publicvoidDataGrid _Page(Objectsender DataGridPageChangedEventArgse) DataGrid CurrentPageIndex=e NewPageIndex; DataBind(); 为DataGrid控件添加绑定事件 即在DataGrid绑定时发生的事件处理 一般用些事件来 做一些页面上的效果 如更改背景色 文本框大小等 OnItemDataBound= DataGrid _ItemDataBound ///<summary> ///响应DataGrid绑定事件 ///</summary> ///<paramname= sender ></param> ///<paramname= e ></param> publicvoidDataGrid _ItemDataBound(objectsender System Web UI WebControls DataGridItemEventArgse) if(e Item ItemType==ListItemType Item) e Item Attributes Add( onmouseover this style backgroundColor= #c dafa ); e Item Attributes Add( onmouseout this style backgroundColor= white );
elseif(e Item ItemType==ListItemType AlternatingItem) e Item Attributes Add( onmouseover this style backgroundColor= #c dafa ); e Item Attributes Add( onmouseout this style backgroundColor= #f f f ); 为DataGrid控件添加接钮处理事件程序 在DataGrid控件标签中加入如下代码 OnItemCommand= ItemsGrid_Command 在后台中加入如下代码 publicvoidItemsGrid_Command(Objectsender DataGridCommandEventArgse) switch(((LinkButton)e CommandSource) CommandName)
case Delete : intclassID=Int Parse((e Item Cells[ ] Text) ToString()); ActorClass DeleteActorClass(classID); if(Request QueryString Get( classID )!=null) Common BindData(DataGrid Common GetSource( select*fromActorClasswhereparentID= +Request QueryString Get( classID )+ orderbydepth orderIDdesc )); else Common BindData(DataGrid Common GetSource( select*fromActorClasswheredepth= orderbydepth orderIDdesc )); break;
//Addothercaseshere iftherearemultipleButtonColumnsin //theDataGridcontrol case hidden : intactorID=Int Parse((e Item Cells[ ] Text) ToString()); ActorClass HiddenActorClass(actorID); if(Request QueryString Get( classID )!=null) Common BindData(DataGrid Common GetSource( select*fromActorClasswhereparentID= +Request QueryString Get( classID )+ orderbydepth orderIDdesc )); else Common BindData(DataGrid Common GetSource( select*fromActorClasswheredepth= orderbydepth orderIDdesc )); break; case MoveUp : intactorclassID=Int Parse((e Item Cells[ ] Text) ToString()); stringorderID=(e Item Cells[ ] Text) ToString(); ActorClass MoveUp(orderID actorclassID); if(Request QueryString Get( classID )!=null) Common BindData(DataGrid Common GetSource( select*fromActorClasswhereparentID= +Request QueryString Get( classID )+ orderbydepth orderIDdesc )); else Common BindData(DataGrid Common GetSource( select*fromActorClasswheredepth= orderbydepth orderIDdesc )); break; case MoveDown : actorclassID=Int Parse((e Item Cells[ ] Text) ToString()); orderID=(e Item Cells[ ] Text) ToString(); ActorClass MoveDown(orderID actorclassID); if(Request QueryString Get( classID )!=null) Common BindData(DataGrid Common GetSource( select*fromActorClasswhereparentID= +Request QueryString Get( classID )+ orderbydepth orderIDdesc )); else Common BindData(DataGrid Common GetSource( select*fromActorClasswheredepth= orderbyorderID )); break;
default: //Donothing break;
为DataGrid添加模板列 但是内容根据字段值来显示 链接 还是文本 以下三个都是 根据字段列不同 而显示内容及显示控件不同的处理代码 <asp:TemplateColumnHeaderText= 子菜单 > <ItemTemplate> <%#ActorClassManage hasLeaf(DataBinder Eval(Container DataItem ActorClassID ) ToString() DataBinder Eval(Container DataItem child ) ToString())%> </ItemTemplate> </asp:TemplateColumn> publicstaticstringhasLeaf(stringid stringchild) stringlRtn= ; if(Int Parse(child)> ) lRtn= <a+id+ ><fontcolor=blue>子菜单( +child+ )</font></a> ; else lRtn= 无子菜单 ;
cha138/Article/program/net/201311/12340相关参考
Java网络编程从入门到精通(24):实现HTTP断点续传下载工具(附源代码) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,
VisualC#通用模块开发:DataGrid控件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
常见Datagrid错误 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 摘要学习如何避免在使用A
DataGrid中的按钮反选事件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! DataGrid
DataGrid的ViewState 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 减少View
DataGrid脚眉显示合计 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 创建一个全局变量
用DataGrid浏览数据相关实例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 数据集
DataGrid中嵌套使用Repeater 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 
捕捉DataGrid的双击事件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!<!StartF
添加一个下拉框到DataGrid 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 本实例利用Pai