求助:DataList控件嵌套GridView控件
说明:运行页面,选择Datalist控件中的“选择”,用GridView控件显示出此行的全部信息
源:
<asp:DataList ID="DataList1" runat="server" Width ="800px" OnItemCommand="DataList1_ItemCommand">
<HeaderTemplate >
<table width ="800px" >
<tr><td>编号</td><td>书名</td><td>相关操作</td></tr>
</HeaderTemplate>
<ItemTemplate >
<tr><td><%#Eval ("title_id") %></td><td><%#Eval("title") %></td><td><asp:LinkButton ID="lbtn_select" runat ="server" CommandName ="select" CommandArgument ='<%#Eval("title_id") %>'>选择</asp:LinkButton></td></tr>
</ItemTemplate>
<SelectedItemTemplate >
<asp:GridView ID="GV_show" runat ="server" ></asp:GridView>
</SelectedItemTemplate>
<FooterTemplate >
</table>
</FooterTemplate>
</asp:DataList>
CS代码:
public SqlConnection con()
{
return new SqlConnection("server=.\\sqlexpress;database=fiveDB;integrated security=true");
}
public DataSet RTds(string Sqlstr)
{
scon = con();
sda = new SqlDataAdapter(Sqlstr, scon);
ds = new DataSet();
sda.Fill(ds);
return (ds);
}
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName == "select")
{
string id = e.CommandArgument.ToString();
str = string.Format("select * from titles where title_id='{0}'", id);
GridView gv = e.Item.FindControl("GV_show") as GridView ;
gv.DataSource = RTds(str); //运行后此行出错,说“未将对象引用设置到对象的实例”
gv.DataBind();
}
}
求解决!!