首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视 ┆淘宝手机在线充值 ┆淘宝游戏点卡充值 
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>NET专区>ASP.NET>DataGrid使用心得总结(附大量代码)
DataGrid使用心得总结(附大量代码)
来源: 发布时间:2007-09-19 发布人: 浏览: 人次   字体: [ ]  
1. 为 DataGrid 控件设计样式
   
    在<asp:datagrid id="DataGrid1" runat="server">之后添加如下代码
   
    <FooterStyle ForeColor="Black" BackColor="#CCCCCC"></FooterStyle>
    <SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#008A8C"></SelectedItemStyle>
    <AlternatingItemStyle BackColor="Gainsboro"></AlternatingItemStyle>
    <ItemStyle ForeColor="Black" BackColor="#EEEEEE"></ItemStyle>
    <HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#000084"></HeaderStyle>
   
    说明:
    (1) 在每个标签内主要是  ForeColor   BackColor  Font-Bold 这几个属性值
   
    2. 为 DataGrid 控件添加绑定列
   
    <asp:BoundColumn DataField="" ReadOnly="True" HeaderText=""></asp:BoundColumn>
    说明:
    (1) 在标签内的基本属性是 DataField / HeaderText
    (2) DataFormatString 用于 获取或设置指定列中各项的显示格式的字符串。
     形式为 { A: Bxx }。例如,格式化字符串 {0:F2} 将显示带两位小数的定点数。
     其中A值只能设置为 0,因为每个单元格中只有一个值。
     冒号后的字符(常规示例中为 B)指定值的显示格式
     C  以货币格式显示数值。
        D  以十进制格式显示数值。
        E  以科学记数法(指数)格式显示数值。
        F  以固定格式显示数值。
        G  以常规格式显示数值。
        N  以数字格式显示数值。
        X  以十六进制格式显示数值。
    (3) Visible 获取或设置一个值,该值指示此列在 DataGrid 控件中是否可见。
    (4) ReadOnly 设置些列是否只读,若是只读的话,则不能修改.
    (5) SortExpression 获取或设置选择进行排序的列时传递到 OnSortCommand 方法的字段或表达式的名称。
  

  3. 为 DataGrid 控件添加模板列
    <asp:TemplateColumn HeaderText="类别">
     <ItemTemplate>
      <asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "actorclassname") %>' runat="server" ID="Label1"/>
     </ItemTemplate>
     <EditItemTemplate>
      <select name="sltclassname">
       <% = ActorClass.GetParentClass(0) %>
      </select>
     </EditItemTemplate>
    </asp:TemplateColumn>
    说明:
    (1) 基本框架是
      <asp:TemplateColumn HeaderText="类别">
    <ItemTemplate></ItemTemplate>
     </asp:TemplateColumn>
    (2) 全面的模板列
     <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:HyperLink id="HyperLink1"
                       Text="Microsoft"
                       NavigateUrl="http://www.microsoft.com"
                       runat="server"/>
               </FooterTemplate>

            </asp:TemplateColumn>
 (3) 为布尔型列应用模板列
  <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控件显示
   
 (4) 为枚举类型列应用模板列,如业务地区(全网/广东/云南等等)
  <asp:TemplateColumn HeaderText="处理方式">
   <ItemTemplate>
    <asp:Label ID="lbStatus">
     <%# DataBinder.Eval(Container, "DataItem.DealWith") %>
    </asp:Label>
   </ItemTemplate>
   <EditItemTemplate>
    <asp:DropDownList id="dpStatus2" runat="server" DataTextField="status">
     <asp:ListItem Value="Log">Log(日志)</asp:ListItem>
     <asp:ListItem Value="SendSms">SendSms(短信)</asp:ListItem>
    </asp:DropDownList>
   </EditItemTemplate>
  </asp:TemplateColumn>
  在正常状态,用 Label控件显示
  在编辑状态,用 DropDownList控件显示
 
 (5) 为长字符串应用模板列,如一篇文章的内容
  还未做过
  
 4. 为 DataGrid 控件添加按钮列
 
 <asp:ButtonColumn
        HeaderText="Remove from cart"
        ButtonType="PushButton"
        Text="Remove"
        CommandName="RemoveFromCart" />
    (1) 要使用按钮列,必须在 DataGrid 控件中添加 OnItemCommand 属性,并为该事件添加处理方法.
    (2) 模板列可以实现按钮列能实现的任何功能.
   
    5. 为 DataGrid 控件添加编辑列
    <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" HeaderText="编辑" CancelText="取消" EditText="编辑"></asp:EditCommandColumn>
    (1) ButtonType 有两个值: LinkButton 超级链接样式按钮的列 | PushButton 普通按钮的列。

 6. 为 DataGrid 控件添加超链接列
 <asp:HyperLinkColumn Text="添加子类" DataNavigateUrlField="ActorclassID" DataNavigateUrlFormatString="addActorClass.aspx?classID={0}"></asp:HyperLinkColumn>
 (1) 为每一行设置相同的文字及跳转的URL地址
  设置 Text 和 NavigateUrl 属性,则列中的所有超级链接将共享同一标题和 URL
 (2) 为每一行设置不同的文字及不同跳转的URL地址
  A.  用 DataTextField 设置数据源字段,若还想在原数据的基础上加工一下(如字段值为300,想显示为300元)
   则再设置 DataTextFormatString 字段
  B. 用DataNavigateUrlField 及 DataNavigateUrlFormatString 来设置URL地址
   用DataTextField = "money" DataTextFormatString = "{0}元"
  C.  举例
   DataNavigateUrlField="ActorclassID" DataNavigateUrlFormatString="addActorClass.aspx?classID={0}"
   
 7. 为 DataGrid 控件添加"编辑"代码
  在 DataGrid 标签中加入
  OnUpdateCommand="DataGrid1_Update" OnCancelCommand="DataGrid1_Cancel" OnEditCommand="DataGrid1_Edit"代码
  在codeBehind页面加入如下代码
  ///响应编辑按钮
  public void DataGrid1_Edit(Object sender, DataGridCommandEventArgs e)
  {
   DataGrid1.EditItemIndex = e.Item.ItemIndex;
   if (Request.QueryString.Get("classID") != null)
    Common.BindData(DataGrid1,Common.GetSource("select * from ActorClass where parentID=" + Request.QueryString.Get("classID") + " order by depth,orderID desc"));
   else
    Common.BindData(DataGrid1,Common.GetSource("select * from ActorClass where depth=1 order by depth,orderID desc"));
  }
  
  ///响应取消按钮
  public void DataGrid1_Cancel(Object sender, DataGridCommandEventArgs e)
  {
   DataGrid1.EditItemIndex = -1;
   if (Request.QueryString.Get("classID") != null)
    Common.BindData(DataGrid1,Common.GetSource("select * from ActorClass where parentID=" + Request.QueryString.Get("classID") + " order by depth,orderID desc"));
   else
    Common.BindData(DataGrid1,Common.GetSource("select * from ActorClass where depth=1 order by depth,orderID desc"));

  }
  
  ///响应更新按钮  
  public void DataGrid1_Update(Object sender, DataGridCommandEventArgs e)
  {
   TextBox ClassNameText = (TextBox)e.Item.Cells[1].Controls[0];
   string className = ClassNameText.Text;
   int classID = Int32.Parse((e.Item.Cells[0].Text).ToString());
   TextBox orderID2 = (TextBox)e.Item.Cells[5].Controls[0];
   int orderID = Int32.Parse(orderID2.Text);
   ActorClass.ModifyActorClass(className,classID,orderID);

   DataGrid1.EditItemIndex = -1;
   if (Request.QueryString.Get("classID") != null)
    Common.BindData(DataGrid1,Common.GetSource("select * from ActorClass where parentID=" + Request.QueryString.Get("classID") + " order by depth,orderID desc"));
   else
    Common.BindData(DataGrid1,Common.GetSource("select * from ActorClass where depth=1 order by depth,orderID desc"));
  }
  说明
  (1) DataGrid 事件处理程序的格式
   MethodName(Object sender, DataGridCommandEventArgs e)
  (2) 更新按钮的说明
   A. 获取编辑状态中的文本框
    TextBox ClassNameText = (TextBox)e.Item.Cells[1].Controls[0];
    string className = ClassNameText.Text;
   B. 获取编辑状态中的下拉列表框
    方法一
    int classID;
    classID = Int32.Parse(Request.Form.Get("sltclassname"));
    方法二
    DropDownList bbb = (DropDownList)e.Item.Cells[10].FindControl("dpStatus2");
    string ddpValue = bbb.SelectedValue
   C. 获取编辑状态中的复选框
    bool boolEnabled = ((CheckBox)e.Item.FindControl("chk_enabled")).Checked;
    String str2;
    if (boolEnabled)
    {
     str2="1";
    }
    else 
    {
     str2="0";
    }
    赋值给 str2 ,原因是插入到数据库的布尔型值只能是 1 或者 0
   D. 获取编辑状态中的文本值,即该列是只读的.
    string storyID = (e.Item.Cells[0].Text).ToString();
 


共2页: 上一页 1 [2] 下一页
相 关 文 章   发布商链接
·ViewState的工作原理及其示例小解
·asp.net2.0中新增的特殊符号"~"的使...
·让.Net程序脱离.net framework框架运...
·asp.net跳转页面的三种方法比较
·ASP.NET AJAX解决网页打开等待问题...
·ASP.NET中不定级动态菜单的实现祥解
·在ASP.NET中调用存储过程两方法
·Asp.net实现无刷新检测用户名
·Asp.net日期字符串格式化显示方法
·关于.NET脏字过滤的算法代码
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·实例讲解ASP.NET实现加密Cook...
·如何实现在DataList控件中的D...
·实例讲解asp.net生成高质量缩
·asp.net适用于IE或FireFox的...
·举例详解C#代码与javaScript...
·asp.net无刷新上传文件
·在Ie中保存图片时出现"800700...
·asp.net文件上传大小限制的控
·asp.net动态生成txt文本文件...
·asp.net实现将Excel文件导入...
·实现多列,带图片的DropDownLi...
·javascript实现TreeView 控件
·ASP.NET配置Word的操作权限
·让FileUpload控件在IE和FireF...
·ASP.NET实现Office文档的分类
热 门 文 章
·asp.net(C#)上传下载及文件管...
·图解asp.net如何用excel做报...
·asp.net无刷新上传文件
·Asp.Net防止刷新重复提交数据...
·asp.net实现将Excel文件导入...
·ASP.NET取得物理路径和虚拟路...
·asp.net中Web.Config配置文件...
·asp.net(c#)生成验证码代码,...
·asp.net页面回传与js调用服务...
·asp.net中DataBinder.Eval的...
·asp.net(C#版)实现登录验证码...
·DataGrid中DropDownList触发S...
·asp.net可输入的下拉框复合控...
·ASP.net 实现批量数据更新或...
·asp.net中常见的几种日历控件...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .