【问题标题】:Filling a drop down list in a grid view with a table in Sql [duplicate]用Sql中的表格填充网格视图中的下拉列表[重复]
【发布时间】:2018-04-30 09:26:14
【问题描述】:

我正在尝试将组合框添加到网格视图中的字段,但是,我不知道如何使用 Sql 中的表中的数据填充它。我知道如何正常执行此操作,但我一直在网上寻找有关如何执行存储在网格视图中的答案。我一直在尝试很多方法,这只是我想出的方法,但它不起作用。

        String Sql = @" select Staffid, staffforename, staffsurname, CONCAT(staffforename, ' ', staffSurname) as FullName from Staff where SupportTeamID = 'TEL'";
        SqlConnection conn = new SqlConnection(Properties.Resources.cString);
        SqlDataAdapter DA = new SqlDataAdapter(Sql, Properties.Resources.cString);
        DataSet DS = new DataSet();
        DA.Fill(DS, "STaff");
        DataTable DT = DS.Tables["Staff"];

        gv_Quals.FindControl("cmbStaffID").DataValueField = "StaffID";
        gv_Quals.FindControl("cmbStaffID").DataTextField = "FullName";
        gv_Quals.FindControl("cmbStaffID").DataSource = DT;
        gv_Quals.FindControl("cmbStaffID").DataBind();

这是我存储在网格视图中的下拉列表的标记代码

   <asp:TemplateField HeaderText="staffID">

                        <ItemTemplate>
                            <asp:DropDownList ID="cmbStaffID" runat="server"></asp:DropDownList>
                        </ItemTemplate>

这是我的网格视图的设计 有没有特定的方法或者我错过了什么?提前致谢! 更新:gv_Quals 是网格视图!

【问题讨论】:

  • gv_Quals 是 gridview 行吗?
  • 不用等待,它的整个网格视图不仅仅是一行
  • GridView1_RowDataBound函数里的代码你加了吗?

标签: c# asp.net sql-server


【解决方案1】:

您应该为不同的行添加绑定代码。因此,为它定义一个RowDataBound 方法。

 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)  
    {  
        if (e.Row.RowType == DataControlRowType.DataRow)  
        {  
            String Sql = @" select Staffid, staffforename, staffsurname, CONCAT(staffforename, ' ', staffSurname) as FullName from Staff where SupportTeamID = 'TEL'";
            SqlConnection conn = new SqlConnection(Properties.Resources.cString);
            SqlDataAdapter DA = new SqlDataAdapter(Sql, Properties.Resources.cString);
            DataSet DS = new DataSet();
            DA.Fill(DS, "STaff");
            DataTable DT = DS.Tables["Staff"];
            gv_Quals.FindControl("cmbStaffID").DataValueField = "StaffID";
            gv_Quals.FindControl("cmbStaffID").DataTextField = "FullName";
            gv_Quals.FindControl("cmbStaffID").DataSource = DT;
            gv_Quals.FindControl("cmbStaffID").DataBind();
        }   

   }  

【讨论】:

    【解决方案2】:

    将您的代码添加到 GridViewID_RowDataBound 事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      • 2014-01-24
      相关资源
      最近更新 更多