将行ID附加到GridView

时间:2019-02-12 17:07:50

标签: c# asp.net database gridview

问题:如何将唯一标识符(GUID)附加到这些行? GUID是由SQL查询提供的吗?

我有一个由SQL存储过程填充的GridView,该存储过程查询4个表和每行(从项目模板中)有一个复选框。我发现的所有资源都显示了如何将数据表链接到gridview,但是我也没有看到将标识符附加到数据表行的方法。

这将全部在page_load上完成,或者在用户通过按钮单击请求时完成,所以我认为使用数据绑定事件不会对我有多大帮助。

P.S。这是为了实现一个UI,用户可以在其中选择要从第三方API请求的数据,因此我不想显示GUID。

ASP.NET

<asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" AutoGenerateColumns="False">
    <AlternatingRowStyle BackColor="White"/>
    <Columns>
        <asp:TemplateField>
            <EditItemTemplate>
                <asp:CheckBox ID="CheckBox1" runat="server"/>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:CheckBox ID="cbSurvey" runat="server" OnCheckedChanged="cbSurvey_CheckedChanged"/>
            </ItemTemplate>
        </asp:TemplateField>  
        <%--1 column here--%>                
        <asp:BoundField DataField="Client" HeaderText="Client" ReadOnly="True"/>
        <%--2 columns here--%>                  
        <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" Visible="False"/>
    </Columns>
    <%--styling stuff--%>
</asp:GridView>

C#

private void DataBind(GridView grid, List<Data> rows)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[5]
{
    //...
    new DataColumn("Client", typeof(string)),
    //...
    new DataColumn("ID", typeof(string))
});

foreach (Data row in rows)
{
    //
    //sql queries
    //get list of string ids
    //

    foreach (string survey in surveys)
    {
        DataRow dr = dt.NewRow();   
        //...       
        dr["Client"] = row.ClientName;          
        //... 
        dr["ID"] = survey;
        //...
        dt.Rows.Add(dr);
    }
}

grid.DataSource = dt;
grid.DataBind();
}

0 个答案:

没有答案