我先将datalist绑定数据库,里面有id、title、time这三列,其中title和time是通过datalist中的两列lable显示的,但是id我不想显示。
如果我想在点击datalist里面的按钮的时候,获取当行的title或time列,很简单我是这样做的
private void datalist_ItemCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
if(e.CommandName=="b")
{
lb.Text=((System.Web.UI.WebControls.Label)e.Item.FindControl("lb1")).Text;
          }
}
那么我想获取所在行的id如何写呢,我已经将id列绑定到了datalist,但是datalist中没有哪个控键用来显示这个id,最主要的是我不能用datakey,因为这个已经给了其它列了。有没有一个通用的方法,只要绑定了datalist或者datagrid那么就可以得到datatalbe中任意一行中的任意项值

解决方案 »

  1.   

    DataRowView row =(DataRowView)e.Item.DataItem;
    取 row["字段"]就可。
      

  2.   

    int a = Convert.toint32(DataGrid1.dataKeys[e.item.itemindex].tostring());
    在绑定的时候DataGrid1.DataKeyFiled = "id";再通过上面的代码可以得到当前行的ID
      

  3.   

    这个方法我知道,谢谢你,可是问题是
    DataRowView dr=(DataRowView)e.Item.DataItem;
    lb.Text=dr["hid"].ToString();
    这个方法我总是无法绑定
      

  4.   

    把按钮的CommandArgument绑定成ID列 CommandArgument=<% DataBinder(....)%>可以直接取到的 以前我这么做过