zoukankan      html  css  js  c++  java
  • 八、初学.NET—GridView 中实现每一行的编辑、删除和更新语句,并且编辑模式绑定下拉框或者单选框。

    前端:

    在设计视图中 添加新列,选择CommandField ,选择按钮类型和命令按钮。

    <asp:CommandField HeaderText="编辑" ShowEditButton="True" ShowHeader="True" />

    给每个模板列增加编辑模板

    //普通文本编辑模板

    <asp:TemplateField HeaderText="专业名称" SortExpression="MajorName">

                <EditItemTemplate>

                    <asp:TextBox ID="tb_MajorName" runat="server" Text='<%# Bind("MajorName") %>'></asp:TextBox>

                </EditItemTemplate>

                <ItemTemplate>

                    <asp:Label ID="Label1" runat="server" Text='<%# Bind("MajorName") %>'></asp:Label>

                </ItemTemplate>

     </asp:TemplateField>

     

    //单选框或者是下拉框绑定表或者其它数据源,可以使用DataSource指定数据源。

    绑定到下拉框

    前端:<asp:TemplateField HeaderText="所属系部名称" SortExpression="DepartmentName">

              <ItemTemplate>

                    <asp:Label ID="lb_Department" runat="server" Text='<%# Bind("DepartmentName") %>'></asp:Label>

              </ItemTemplate>

              <EditItemTemplate>

                  <asp:DropDownList ID="ddl_Department" runat="server" DataSource='<%#ddlDeparmentBind() %>' DataTextField="DepartmentName" DataValueField="DepartmentID"  >

                  </asp:DropDownList>

              </EditItemTemplate>

           </asp:TemplateField>

    public DataSet ddlDeparmentBind()

        {

          

            DataSet ds = new DataSet();

            using (SqlConnection conn = new SqlConnection(sConnectionString))

            {

                conn.Open();

                {

                    using (SqlCommand cmd = new SqlCommand("select DepartmentName,DepartmentID from tbDepartment", conn))

                    {

                        SqlDataAdapter da = new SqlDataAdapter(cmd);

                        da.Fill(ds);

                        return ds;

                    }

                }

            }

        }

     

    绑定到单选框

    前台:

    <asp:TemplateField HeaderText="评定等级">

             <ItemTemplate>

               <asp:RadioButtonList ID="rbl_Grade" runat="server" RepeatDirection="Horizontal" DataSource='<%#RblReviewOptionBind()%>' DataTextField="ReviewOptionName" DataValueField="ReviewOptionWeight" >

                 </asp:RadioButtonList>

             </ItemTemplate>

           </asp:TemplateField>

    后台:

    public DataSet RblReviewOptionBind()

         {

             DataSet ds = new DataSet();

            using (SqlConnection conn = new SqlConnection(sConnectionString))

            {

                conn.Open();

                {

                    using (SqlCommand cmd = new SqlCommand("select * from tbReviewOption order by ReviewOptionName", conn))

                    {

                        SqlDataAdapter da = new SqlDataAdapter(cmd);

                        da.Fill(ds);

                        return ds;

                    }

                }

            }

        }

     

    //巧妙的绑定到下拉框,不一定是编辑模式才可用

    前端:

    <asp:TemplateField HeaderText="用户类型">

             <ItemTemplate>

               <%# FormatUserType(Eval("UserType").ToString()) %>

             </ItemTemplate>

      </asp:TemplateField>

    后台:

    protected string FormatUserType(string sUserType)

        {

            string[] arrs = new string[] {"管理员","教研室主任","评审人员" };

            return arrs[Convert.ToInt16(sUserType)];

        }

     

     

    后台代码:实现进入编辑模式、退出编辑模式、更新和删除、选中操作,不要忘记绑定数据源。

    protected void gv_ReviewOption_RowEditing(object sender, GridViewEditEventArgs e)

        {

            gv_ReviewOption.EditIndex = e.NewEditIndex;

            SetBind();  //进入编辑模式后绑定数据源

        }

    protected void gv_ReviewOption_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)

        {

            gv_ReviewOption.EditIndex = -1;//退出编辑模式要将 EdintIndex 设置为-1;

            SetBind(); ////退出编辑模式后绑定数据源

     

        }

    //更新记录

    protected void gv_ReviewOption_RowUpdating(object sender, GridViewUpdateEventArgs e)

        {

            int iIndex = Convert.ToInt16(e.RowIndex);

            GridViewRow gvr = gv_ReviewOption.Rows[iIndex];

            using (SqlConnection conn = new SqlConnection(sConnectionString))

            {

                string sSql = "update tbReviewOption set ReviewOptionName ='" + ((gvr.Cells[2].FindControl("tb_ReviewOptionName")) as TextBox).Text.Trim() + "',ReviewOptionWeight='" + Convert.ToDouble(((gvr.Cells[3].FindControl("tb_ReviewOptionWeight")) as TextBox).Text.Trim()) + "' where ReviewOptionID='" + gv_ReviewOption.DataKeys[iIndex].Value + "'";

                conn.Open();

                using (SqlCommand cmd = new SqlCommand(sSql, conn))

                {

                    Page.ClientScript.RegisterStartupScript(this.GetType(), "", string.Format("<script>alert('成功更新{0}条记录')</script>", cmd.ExecuteNonQuery()));

                }

     

            }

            gv_ReviewOption.EditIndex = -1; //更新后要将 EdintIndex 设置为-1;

            SetBind();///更新后绑定数据源

     

        }

  • 相关阅读:
    tesserocr与pytesseract模块的使用
    python pillow模块用法
    tesseract-ocr,tesseract,pytesseract在windows下怎么安装
    Python pillow库安装报错
    Python 让输入的密码不在屏幕上显示
    Linux 中CPU 和 GPU 的行为监控
    Linux之RedHat7如何更换yum源
    RHEL6搭建网络yum源仓库
    一文读懂内网、公网和NAT
    将Android手机无线连接到Ubuntu实现唱跳Rap
  • 原文地址:https://www.cnblogs.com/liuyuanhao/p/3012971.html
Copyright © 2011-2022 走看看