GridView 72般绝技(三)

添加人:admin四级(1706分)   添加时间:2007-08-11    阅读次数:7245  收藏此教程
9.GridView实现自动编号
效果图:

实现方法:
双击GridView的OnRowDataBound事件;
在后台的GridView1_RowDataBound()方法添加代码,最后代码如下所示:
 1protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
 2{
 3    //如果是绑定数据行 //清清月儿http://blog.csdn.net/21aspnet
 4    if (e.Row.RowType == DataControlRowType.DataRow)
 5    {
 6        ////鼠标经过时,行背景色变
 7        //e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#E6F5FA'");
 8        ////鼠标移出时,行背景色变
 9        //e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#FFFFFF'");
10        ////当有编辑列时,避免出错,要加的RowState判断
11        //if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)
12        //{
13        //    ((LinkButton)e.Row.Cells[6].Controls[0]).Attributes.Add("onclick", "javascript:return confirm('你确认要删除:"" + e.Row.Cells[1].Text + ""吗?')");
14        //}
15    }

16    if (e.Row.RowIndex != -1)
17    {
18        int id = e.Row.RowIndex + 1;
19        e.Row.Cells[0].Text = id.ToString();
20    }

21}
 
注意这时最好把前台的第一列的表头该为“编号”,因为以前的第一列被“吃掉”了。
 1<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="3" OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing"
 2    OnRowUpdating="GridView1_RowUpdating" OnRowCancelingEdit="GridView1_RowCancelingEdit" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" Font-Size="12px" OnRowDataBound="GridView1_RowDataBound">
 3    <FooterStyle BackColor="White" ForeColor="#000066" />
 4    <Columns>
 5        <asp:BoundField DataField="身份证号码" HeaderText="编号" ReadOnly="True" />
 6        <asp:BoundField DataField="姓名" HeaderText="用户姓名" />
 7        <asp:BoundField DataField="员工性别" HeaderText="性别" />
 8        <asp:BoundField DataField="家庭住址" HeaderText="家庭住址" />
 9        <asp:CommandField HeaderText="选择" ShowSelectButton="True" />
10        <asp:CommandField HeaderText="编辑" ShowEditButton="True" />
11        <asp:CommandField HeaderText="删除" ShowDeleteButton="True" />
12    </Columns>
13    <RowStyle ForeColor="#000066" />
14    <SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
15    <PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
16    <HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
17</asp:GridView>
 
10.GridView实现自定义时间货币等字符串格式:
效果图:

图1-未格式化前
 
图2-格式化后
 
解决方法:
在asp.net 2.0中,如果要在绑定列中显示比如日期格式等,如果用下面的方法是显示不了的 
1 <asp :BoundField DataField="CreationDate" 
2 DataFormatString="{0:M-dd-yyyy}" 
3 HeaderText="CreationDate" />
 
主要是由于htmlencode属性默认设置为true,已防止XSS攻击,安全起见而用的,所以,可以有以下两种方法解决
1、
1<asp:GridView ID="GridView1" runat="server">
2    <columns>
3        <asp :BoundField DataField="CreationDate"
4        DataFormatString="{0:M-dd-yyyy}" 
5        HtmlEncode="false"
6        HeaderText="CreationDate" />
7    </columns>
8</asp:GridView>
将htmlencode设置为false即可
 
另外的解决方法为,使用模版列
 1<asp:GridView ID="GridView3" runat="server" >
 2 <columns>
 3  <asp:TemplateField HeaderText="CreationDate" >
 4   <itemtemplate>
 5    <asp:Label ID="Label1" runat="server" Text='<%# Bind("CreationDate", "{0:M-dd-yyyy}") %>' />
 6   </itemtemplate>
 7   <edititemtemplate>
 8    <asp:Label ID="Label1" runat="server" Text='<%# Eval("CreationDate", "{0:M-dd-yyyy}") %>' />
 9   </edititemtemplate>
10  </asp:TemplateField>
11 </columns>
12</asp:GridView>
 
前台代码:
 1<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="身份证号码"
 2    DataSourceID="SqlDataSource1" AllowSorting="True" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="3" Font-Size="12px" OnRowDataBound="GridView1_RowDataBound">
 3    <Columns>
 4        <asp:BoundField DataField="身份证号码" HeaderText="身份证号码" ReadOnly="True" SortExpression="身份证号码" />
 5        <asp:BoundField DataField="姓名" HeaderText="姓名" SortExpression="姓名" />
 6        <asp:BoundField DataField="邮政编码" HeaderText="邮政编码" SortExpression="邮政编码" />
 7        <asp:BoundField DataField="出生日期" HeaderText="出生日期" SortExpression="出生日期" />
 8        <asp:BoundField DataField="起薪" HeaderText="起薪" SortExpression="起薪" />
 9    </Columns>
10    <FooterStyle BackColor="White" ForeColor="#000066" />
11    <RowStyle ForeColor="#000066" />
12    <SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
13    <PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
14    <HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
15</asp:GridView>
16<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:北风贸易ConnectionString1 %>"
17    SelectCommand="SELECT top 5 [出生日期], [起薪], [身份证号码], [姓名], [家庭住址], [邮政编码] FROM [飞狐工作室]" DataSourceMode="DataReader"></asp:SqlDataSource>
 
附录-常用格式化公式:
{0:C}  货币;
{0:D4}由0填充的4个字符宽的字段中显示整数;
{0:000.0}四舍五入小数点保留第几位有效数字;
{0:N2}小数点保留2位有效数字;{0:N2}%   小数点保留2位有效数字加百分号;
{0:D}长日期;{0:d}短日期;{0:yy-MM-dd}   例如07-3-25;;{0:yyyy-MM-dd}  例如2007-3-25
 
 
3页 第1上一页123下一页
相关的教程: GridView 技巧 GridView 72般绝技
收藏此教程

当前平均分: 0.0(2 次打分)

-5-4-3-2-1012345
评论主题
您的大名
您的评论
验证码 点击换一个验证码
知识库搜索: