TemplateField中ListBox问题
在GridView的TemplateField中,想用一个ListBox动态显示一组数据,这组数据是根据当前的绑定Item的Id属性从数据库中取出的,但是好像实现不了,有什么好办法吗?
<asp:GridView ...>
   <Columns>
     ...
     <asp:TemplateField ...>
       <ItemTemplate>
         <asp:ListBox ... /> <--此处不知如何实现--
...
------解决方案--------------------可以实现,在RowBound事件里,取出id,然后在次读数据库,绑定listbox
------解决方案--------------------前台:
   <form id="form1" runat="server">
   <div>
       <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" OnRowDataBound="GridView1_RowDataBound">
           <Columns>
               <asp:BoundField DataField="ID" />
               <asp:TemplateField><ItemTemplate><asp:ListBox runat="server" ID="ListBox1" AutoPostBack="true"  OnTextChanged="ListBox1_SelectedIndexChanged"></asp:ListBox></ItemTemplate></asp:TemplateField>
           </Columns>
       </asp:GridView>  
   </div>
   </form>
.cs文件
   protected void Page_Load(object sender, EventArgs e)
   {
       if (!IsPostBack)
       {
           GridView1.DataSource = SqlClass.getDataTable("select top 10 ID from [user]");
           GridView1.DataBind();
       }
   }
   protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
   {
       if (e.Row.RowType == DataControlRowType.DataRow)
       {
           string strID = e.Row.Cells[0].Text;
           ListBox lb = (ListBox)(e.Row.Cells[1].FindControl("ListBox1"));
           lb.DataSource = SqlClass.getDataTable("select ID,UserName from [user] where ID ="+strID);
           lb.DataTextField = "UserName";
           lb.DataValueField = "ID";
           lb.DataBind();
       }
   }
   protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
   {
       Response.Write(((ListBox)sender).Text);
   }