在一个datalist中绑定表info的字段("姓名"),datakeyfield="ID",,,运行后:
  姓名
 王 一
 张 三
 李 四请问单击“张三”通过触发什么类型的事件来,,实现
string KID =Convert.ToString(DataList1.DataKeys[e.Item.ItemIndex])
通过KID值就在SQL条件中可查找其它值了,,请谁能给我一个详细的例子好吗?
谢谢。。

解决方案 »

  1.   

    想要取得绑定控件的键值,你必须在此控件绑定之时就指定它的键值所对应的字段名
    this.DataGrid1.DataSource = 数据集;
    this.DataGrid1.DateKeyField = "id";
    this.DataGRid1.DataBind();
    如下,即将你求取的数据集中的ID字段,绑定作为此控件的键
    然后,你即可在该控件的其他事件中比如在编辑事件里面,直接求取当前编辑行所在的数据对应的ID值
    string KID =Convert.ToString(DataList1.DataKeys[e.Item.ItemIndex]);
    要查找其它值,你即可通过此ID(当然,此ID必须为你数据库中的主键)去求取.sql = "select * from table where id= " + id;
      

  2.   

    不知如何书写ItemCommand事件,能举个详细的例子吗?
      

  3.   

    void Item_Command(Object sender, DataListCommandEventArgs e) 
          {
            string KID =Convert.ToString(DataList1.DataKeys[e.Item.ItemIndex]);      }
    单击datalist的数据项“张三”,,但却没有触发Item_Command,,不知是什么原因?是不是还要在前台程序里相关事件信息呢?
      

  4.   

    单击你的Datalist控件,在属性窗口上有个“Event”图标,就像个小闪电似的那个东东,点击之后能看到此空间所关联的所有事件,找到ItemCommand,然后……
      

  5.   

    private void DataList1_ItemCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
    {

    }
    是这个事件
      

  6.   

    请问若不用:
    string KID =Convert.ToString(DataList1.DataKeys[e.Item.ItemIndex]);取值
    还有其它的方法取其它字段不是关键字字段值的吗?。。谢谢!希望能举个例子。。
      

  7.   

    Label mylab = (Label)DataList1.Item[n].Controls("xxx")
    xx = mylab.Text
      

  8.   

    在前台拖动一个datalist服务器端控件即可.
      

  9.   

    隐藏一个Lable,然后通过(Label)DataList1.Item[n].Controls("xxx")
    找到标记列,就是id
    对数据库进行操作。