0

我有一个基础网格,其中填充了选定的下拉列表。存储的过程将列名和数据带入带有 2 个表的结果集中。

我如何加载标题信息?

    <asp:DropDownList ID="DropDownList1" AutoPostBack="true" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
   <asp:ListItem>Select Entity</asp:ListItem>
</asp:DropDownList>
<asp:Label runat="server" ID="EntityName"></asp:Label>
<ig:WebScriptManager ID="WebScriptManager1" runat="server"></ig:WebScriptManager>
<ig:WebDataGrid ID="EntityGrid" runat="server"  Width="100%" Height="50%" StyleSetName="Claymation" >

    <Behaviors>
        <ig:Sorting>
        </ig:Sorting>

    </Behaviors> 
    <ClientEvents Click="NavigateOnClick" />

</ig:WebDataGrid>   

我后面的代码有

    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        EntityName.Text = DropDownList1.SelectedItem.Text;
        string entity = "t_" + DropDownList1.SelectedItem.Text;
        String strConnString = ConfigurationManager.ConnectionStrings["LiveLeaseConnectionString"].ConnectionString;
        SqlConnection con = new SqlConnection(strConnString);
        SqlCommand cmd = new SqlCommand("p_DataList_ByRegardingObject", con);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@RegardingObjectName", entity);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
        ds.Tables.Add("TheFirstResult");
        ds.Tables.Add("TheSecondResult");
        da.TableMappings.Add("Table", "TheFirstResult");
        da.TableMappings.Add("Table1", "TheSecondResult");

        da.Fill(ds);
        this.EntityGrid.DataSource = ds.Tables["TheSecondResult"];

        this.EntityGrid.DataBind();



    }
4

1 回答 1

1

假设TheFirstResult表中的第一行包含列名,并且它们的顺序和编号与实际数据相同,您可以执行以下操作:

for (int I = 0; I < ds.Tables["TheFirstResult"].Columns.Count; I++) {
   this.EntityGrid.Columns[I].Header.Text = ds.Tables["TheFirstResult"].Rows[0][I];
}

DataBind在命令后添加此代码。它将遍历第一个表,将第一行中的数据分配给网格的列标题标题。

于 2013-05-08T01:47:58.020 回答