我想在DataList中每一行放一个单选框组,先试了
<asp:datalist id="DataList1" runat="server" Height="41" Width="209">
<ItemTemplate>
<table>
<tr>
<td><%# DataBinder.Eval(Container.DataItem,"Serial")%>
,&nbsp;<%# DataBinder.Eval(Container.DataItem,"Subject")%></td>
</tr>
<tr>
<td>
<asp:Label ID="answer" Runat="server">
<%# DataBinder.Eval(Container.DataItem,"Answer")%>
<asp:Label ID="QuesionId" Runat="server">
<%# DataBinder.Eval(Container.DataItem,"QuestionId")%>
</asp:Label>
</asp:Label></td>
</tr>
<tr>
<td>
<asp:RadioButtonList ID="sSelAnswer" Runat="server" RepeatDirection="Horizontal">
 <asp:ListItem Value='a' Text='<%# DataBinder.Eval(Container.DataItem,"Select1")%>'></asp:ListItem>
 <asp:ListItem Value='b' Text='<%# DataBinder.Eval(Container.DataItem,"Select2")%>'></asp:ListItem>
</asp:RadioButtonList></td>
</tr>

</table>
编译通不过
后来我又试了
private void DataList1_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
Label lbl=(Label)e.Item.FindControl("QuesionId");
RadioButtonList rl=(RadioButtonList)e.Item.FindControl("sSelAnswer");

if(lbl!=null)
{
string sql="SELECT Select1,Select2,Select3 from SelectQuestion WHERE QuestionId="+lbl.Text;
DataSet ds=GetDataSet(sql);
if(rl!=null)
{
rl.Items.Add(new ListItem(ds.Tables[0].Rows[0]["Select1"].ToString(),"a"));
rl.Items.Add(new ListItem(ds.Tables[0].Rows[0]["Select2"].ToString(),"b"));
rl.Items.Add(new ListItem(ds.Tables[0].Rows[0]["Select3"].ToString(),"c"));
rl.Items.Add(new ListItem(ds.Tables[0].Rows[0]["Select4"].ToString(),"d"));
}
} }
可这样得到的lbl.Text始终是空,谁知道该怎么做啊
谢谢

解决方案 »

  1.   

    if(e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
    {
    //加在这里试验一下
    ......
    }
      

  2.   

    是了wangrenda的方法还是不行,就是在程序中我的
    Label lbl=new Label();
    lbl=(Label)e.Item.FindControl("QuestionId");
    RadioButtonList rl=(RadioButtonList)e.Item.FindControl("sSelAnswer");


    string sql="SELECT Select1,Select2,Select3 from SelectQuestion WHERE QuestionId="+lbl.Text;
    lbl.text始终是空值
    我以前也写过在DataList中用这样的方法取一个Label的值
    并不是空啊
    哪位帮帮忙
    谢谢
      

  3.   

    <asp:Label id=QueryID runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.ID") %>'></asp:Label>
      

  4.   

    谢谢wangrenda
    我解决了