将数据库表行作为asp.net gridview标头获取

时间:2018-03-25 12:25:10

标签: c# html asp.net sql-server gridview

我的SQL Server数据库中有两个表(一个用于添加主题,另一个用于添加基于类在这些主题中获得的标记)。我想像excel条目一样创建标记条目,所以我在gridview的第一列中获取学生姓名,并在gridview的其他列中填充文本框以输入标记,如下所示:

enter image description here

现在的问题是,如果10年级的学生'A'选择了4个科目,而5年级的学生'B'选择了5个科目,我该如何实施标记录入模块,说学生'A'只有gridview和学生'B'中的4个文本框和主题列只有5个文本框。

这是我的Aspx标记:

<asp:GridView ID="grdMarksEntry" GridLines="None" runat="server" 
     AutoGenerateColumns="false" 
     CssClass="table table-hover table-responsive table-bordered" ShowFooter="true">
    <Columns>
        <asp:TemplateField HeaderText="Sl. No.">
            <ItemTemplate>
                <%#Container.DataItemIndex + 1 %>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="name" HeaderText="Name of the student" />
        <asp:TemplateField HeaderText="Subject 1">
            <ItemTemplate>
                <asp:TextBox ID="txtSub1" runat="server" CssClass="form-control"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Subject 2">
            <ItemTemplate>
                <asp:TextBox ID="txtSub2" runat="server" CssClass="form-control"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Subject 3">
            <ItemTemplate>
                <asp:TextBox ID="txtSub3" runat="server" CssClass="form-control"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Subject 4">
            <ItemTemplate>
                <asp:TextBox ID="txtSub4" runat="server" CssClass="form-control"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Subject 5">
            <ItemTemplate>
                <asp:TextBox ID="txtSub5" runat="server" CssClass="form-control"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Subject 6"> 
            <ItemTemplate>
                <asp:TextBox ID="txtSub6" runat="server" CssClass="form-control"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

我的c#代码背后:

private void bindgrd()
{
    string constr = ConfigurationManager.ConnectionStrings["DatabaseConnect"].ConnectionString;

    using (SqlConnection StudMarksCon = new SqlConnection(constr))
    {
        using (SqlCommand StudMarksCmd = new SqlCommand("select distinct name from studentregistration where class='" + drpClass.SelectedItem.ToString() + "' and div='" + drpDiv.SelectedItem.ToString() + "'"))
        {
            using (SqlDataAdapter sda = new SqlDataAdapter())
            {
                StudMarksCmd.Connection = StudMarksCon;
                sda.SelectCommand = StudMarksCmd;

                using (DataTable dt = new DataTable())
                {
                    sda.Fill(dt);
                    grdMarksEntry.DataSource = dt;
                    grdMarksEntry.DataBind();
                }
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

您需要根据学生选择的科目数动态创建文本框数。