GridView控件的使用

 
一、对于 GridView 控件中的 <asp:BoundField> 字段, 如果在 RowDataBound 事件中改变它的值,点击 Edit 按钮时,该字段将不再进入编辑状态。例:
1 html 代码
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
                    Width="650px" OnRowDeleting="GridView1_RowDeleting" AllowPaging="True" CellPadding="4" ForeColor="#333333" GridLines="None" OnRowDataBound="GridView1_RowDataBound" OnRowEditing="GridView1_RowEditing" Font-Size="10pt" DataSourceID="SqlDataSource1" OnRowUpdating="GridView1_RowUpdating" DataKeyNames="examid">
                    <Columns>
                        <asp:TemplateField HeaderText=" 专业名称 ">
                            <EditItemTemplate>
                                <asp:DropDownList ID="DdlPro" runat="server">
                                </asp:DropDownList>
                            </EditItemTemplate>
                            <ItemTemplate>
                                <asp:Label ID="LbPro" runat="server" Text='<%# Eval("professionname") %>'></asp:Label>
                            </ItemTemplate>
                            <ItemStyle Width="12%" />
                        </asp:TemplateField>
                       
                        <asp:BoundField DataField="addtime" DataFormatString="{0:d}" HeaderText=" 加入时间 " />
                       
<asp:CommandField HeaderText=" 编辑 " ShowEditButton="True">
                        </asp:CommandField>
                    </Columns>
                </asp:GridView>
 
2 C# 代码
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            if (e.Row.RowState == DataControlRowState.Edit || (e.Row.RowState== (DataControlRowState.Edit | DataControlRowState.Alternate)))
            {
                e.Row.Cells[1].Text=Convert.ToDateTime(((TextBox)e.Row.Cells[1].Controls[0]).Text.Trim()).ToString();
            }
                e.Row.Cells[1].Text = Convert.ToDateTime(e.Row.Cells[1].Text).ToShortDateString();
        }
}
 
二、 GridView 控件的 RowEditing RowUpdating 事件用 Return 语句无法阻止其进入编辑状态和进行数据更新。
1 、在 RowEditing 中使用 Return 语句,其作用只是跳过 RowEditing 事件中 Return 语句后面的代码,并不影响进入编辑状态。即一旦进入 RowEditing 事件,进入编辑状态便不可避免。
2 、在 RowUpdating 事件使用 Return 语句,其作用只是跳过 RowUpdating 事件中 Return 语句后面的代码,数据更新会继续进行,即程序仍然要执行数据更新的操作。即一旦进入 RowUpdating 事件,数据更新操作便不可中止。
 
三、使用 GridView 控件时必须设置 DataKeyNames 属性
 
四、可使用 GridView DataBind() 方法重新绑定更新后的数据 ( 一般用于数据源改变或更新后 ) 。例: GridView1.DataBind();
 
五、如果 GridView 控件的 <asp:BoundField> 字段的 ReadOnly 属性设置为 True ,执行 GridView 控件的 RowUpdating 事件进行数据更新后,将会把 Null 赋予 ReadOnly 属性设置为 True <asp:BoundField> 字段,从而造成数据的丢失。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值