问题:如何将唯一标识符(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();
}