在前台.aspx文件中可以获取绑定数据源的某个字段值:
<%# DataBinder.Eval(Container.DataItem,"字段名").ToString() %>但在后台.cs文件中如何获取?如下代码点击某一项的删除按钮时,如何获取该项中指定字段的值:
private void dlstMessageList_DeleteCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
    Response.Write(e.Item.);//Item后面该怎么写,弄了半天都没弄出来。
}请指教,多谢。

解决方案 »

  1.   

    一般是这样,前台:
    <Label id="a" Text='<%# DataBinder.Eval(Container.DataItem,"字段名").ToString() %>'/>
    后台取值:
    string str = (Label)(e.FindControl("id")).Text;
      

  2.   

    我之前用的就是这种方法,每次都得放一个隐藏的Lable控件,将它与某一字段绑定,然后再在事件中取值,感觉很烦琐,有没有类似DataGrid中e.Item.Cells[1]这样直接指定字段名来获取值的办法呢?
      

  3.   

    datalist没有DataGrid中e.Item.Cells[1]的方法.
      

  4.   

    一般来说你取的是主键吧,设置datakeyfield通过datalist.datakeys[e.item.itemindex]取,你还可以加一个隐藏域来实现input type="hidden" value='<%# DataBinder.Eval(Container.DataItem,"字段名").ToString() %>' runat="server" id="hid">,后台可以find到这个control
      

  5.   

    一般来说你取的是主键吧,设置datakeyfield通过datalist.datakeys[e.item.itemindex]取,你还可以加一个隐藏域来实现input type="hidden" value='<%# DataBinder.Eval(Container.DataItem,"字段名").ToString() %>' runat="server" id="hid">,后台可以find到这个control