带下拉框的GridView的OnRowEditing

本文详细介绍了ASP.NET中GridView控件的编辑与删除功能实现。通过具体代码示例,展示了如何使用RowEditing、RowUpdating、RowDeleting等事件进行数据的修改与删除,并在RowDataBound事件中填充下拉列表数据。

===========================aspx

<asp:GridView runat="server" ID="grvMobile" AutoGenerateColumns="False" Width="100%"
                                OnRowCancelingEdit="grvMobile_RowCancelingEdit" OnRowDeleting="grvMobile_RowDeleting"
                                OnRowEditing="grvMobile_RowEditing" OnRowUpdating="grvMobile_RowUpdating" OnRowDataBound="grvMobile_RowDataBound">
                                <Columns>
                                    <asp:TemplateField HeaderText="姓名">
                                        <ItemStyle Width="100" />
                                        <ItemTemplate>
                                            <asp:Label ID="userName" runat="server" Text='<%#Eval("姓名") %>'></asp:Label>
                                        </ItemTemplate>
                                        <EditItemTemplate>
                                            <asp:TextBox ID="txt_Name" runat="server" Text='<%#Eval("姓名") %>' Width="90%" />
                                        </EditItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="单位">
                                        <ItemTemplate>
                                            <%#Eval("单位")%></ItemTemplate>
                                        <EditItemTemplate>
                                            <asp:HiddenField ID="Hidd_Comp" runat="server" Value='<%#Eval("单位")%>' />
                                            <asp:DropDownList ID="ddl_Comp" runat="server" Width="80%">
                                            </asp:DropDownList>
                                        </EditItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="号码">
                                        <ItemStyle Width="100" />
                                        <ItemTemplate>
                                            <asp:Label ID="phoneNum" runat="server" Text='<%#Eval("手机号")%>'></asp:Label>
                                        </ItemTemplate>
                                        <EditItemTemplate>
                                            <asp:HiddenField ID="Hidd_OldPhoneNum" runat="server" Value='<%#Eval("手机号") %>' />
                                            <asp:TextBox ID="txt_PhoneNum" runat="server" Text='<%#Eval("手机号") %>' Width="90%"
                                                onkeyup="this.value=this.value.replace(/\D/g,'')" />
                                        </EditItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="状态">
                                        <ItemStyle Width="60" />
                                        <ItemTemplate>
                                            <%#Eval("状态")%></ItemTemplate>
                                        <EditItemTemplate>
                                            <%#Eval("状态")%></EditItemTemplate>
                                    </asp:TemplateField>
                                    <asp:CommandField HeaderText="操作" ItemStyle-Width="100" ShowEditButton="true" UpdateText="确认"
                                        CancelText="取消" DeleteText="&lt;span onclick=&quot;JavaScript:return confirm('是否确定删除该数据?')&quot;&gt;删除&lt;/span&gt; " />
                                    <asp:CommandField HeaderText="操作" ItemStyle-Width="100" ShowDeleteButton="true" UpdateText="确认"
                                        CancelText="取消" DeleteText="&lt;span onclick=&quot;JavaScript:return confirm('是否确定删除该数据?')&quot;&gt;删除&lt;/span&gt; " />
                                </Columns>
                            </asp:GridView>

 

 

 

============================cs

  protected void grvMobile_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
  {
            this.grvMobile.EditIndex = -1;
            this.grvMobile.DataSource = ViewState["dt"] as DataTable;
            this.grvMobile.DataBind();
   }

   protected void grvMobile_RowDeleting(object sender, GridViewDeleteEventArgs e)
   {
            this.grvMobile.EditIndex=-1;
            MobileBLL bll = new MobileBLL();
            DataStruct ds = new DataStruct();
            string phoneNum = (this.grvMobile.Rows[e.RowIndex].FindControl("phoneNum") as Label).Text;
            ds = bll.DeleteMobile(phoneNum);
            if (ds.IsSuc)
            {
                string userName = (this.grvMobile.Rows[e.RowIndex].FindControl("userName") as Label).Text;
                PagerMobile.CurrentPageIndex = 1;
                BindMobile();
                showMessageBox("用户" + userName + "已成功删除");
            }
            else
            {
                showMessageBox("用户" + (this.grvMobile.Rows[e.RowIndex].FindControl("userName") as Label).Text + "删除失败");
            }
            ds = null;
            bll = null;
   }

 protected void grvMobile_RowEditing(object sender, GridViewEditEventArgs e)
  {
            this.grvMobile.EditIndex = e.NewEditIndex;
            this.grvMobile.DataSource = ViewState["dt"] as DataTable;
            this.grvMobile.DataBind();
  }

 

 protected void grvMobile_RowUpdating(object sender, GridViewUpdateEventArgs e)
 {
            MobileBLL bll = new MobileBLL();
            DataStruct ds = new DataStruct();
            string userName = (this.grvMobile.Rows[e.RowIndex].FindControl("txt_Name") as TextBox).Text;
            string uintName = (this.grvMobile.Rows[e.RowIndex].FindControl("ddl_Comp") as DropDownList).SelectedValue;
            string phoneNum = (this.grvMobile.Rows[e.RowIndex].FindControl("txt_PhoneNum") as TextBox).Text;
            string oldPhoneNum = (this.grvMobile.Rows[e.RowIndex].FindControl("Hidd_OldPhoneNum") as HiddenField).Value.Trim();
            ds = bll.ModifyMobile(userName, uintName, phoneNum, oldPhoneNum);
            if (ds.IsSuc)
            {
                e.Cancel = true;
                this.grvMobile.EditIndex = -1;
                this.grvMobile.DataSource = ViewState["dt"] as DataTable;
                this.grvMobile.DataBind();
                showMessageBox(ds.Message);
            }
            else
            {
                showMessageBox(ds.Message);
            }
            BindMobile();
 }

 

 protected void grvMobile_RowDataBound(object sender, GridViewRowEventArgs e)
  {
            CommonBLL bll = new CommonBLL();
            DataStruct ds = bll.QueryAllMobileUnit();
            DropDownList list = e.Row.FindControl("ddl_Comp") as DropDownList;

 

            if (ds.IsSuc && list != null)
            {
                list.DataSource = ds.Data;
                list.DataTextField = "单位";
                list.DataValueField = "单位";
                list.DataBind();

                list.SelectedValue = (e.Row.FindControl("Hidd_Comp") as HiddenField).Value;
            }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值