gridview Binddata

时间:2011-04-01 09:36:46

标签: c# asp.net

我正在使用嵌套网格视图。第二个应该使用存储过程绑定。存储过程的参数为gridview1.selected值,连接字符串应取自config.connection字符串。我的代码是:

SqlCommand cmd = 
    new SqlCommand("spname", new SqlConnection(Config.connectionstring));
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("parametername", GridView1.SelectedValue);
cmd.Connection.Open();
control.DataSource = cmd.ExecuteReader();
control.DataBind();

但它不起作用。有什么想法吗?

3 个答案:

答案 0 :(得分:0)

您必须在之前的数据绑定gridview事件中对此进行编码,在这种情况下,您必须首先找到控件然后绑定数据。

答案 1 :(得分:0)

当Rows绑定数据时会触发RowDataBound事件。你必须这样做......

protected void GridView1_RowDataBound(Object sender, GridViewRowEventArgs e)
{

if (e.Row.RowType == DataControlRowType.DataRow)
{
    System.Data.DataRowView dr = (System.Data.DataRowView)e.Row.DataItem;

        String x = dr["yourColumnName"].ToString();
        GridView gridView2 = (GridView)e.Row.Findcontrol("gridView2");//add this
        gridView2.DataSource = Assign Data source here;
        gridView2.DataBind();

}
}

答案 2 :(得分:0)

对我而言,您的代码中似乎存在缺陷。

1:您正在尝试传递GridView1.SelectedValue但在首次运行时,除非您明确设置,否则不会有SelectedRow。

2:每次gv2都是数据绑定时,它将使用相同的参数值,因为在任何时候只有一个SelectedRow,因此传递的SelectedValue将是相同的。

因此,请分享更多代码,如果可能的话,请提供一些预期结果的屏幕截图。