我用datalist显示一个表,然后想对每一项进行操作,而操作时需要得到某一个列值,怎么做啊?
按字段显示后,我在里面添加了一个超链接,这个超链接需要传本行的ID值,请问怎么处理啊?

解决方案 »

  1.   

    数据绑定后再用
    for(int i=0;i<datalist1.rows.count;i++)
    {这里处理操作}gridview 我都是这么搞的,datalist 没用过,应该原理差不多
      

  2.   

    J2EE里有个URL重定向可以传入指定参数到sevlet里去处理,.net没用过,不知道有没有。
      

  3.   


    protected void dataList_ItemDataBound(object sender, DataListItemEventArgs e)
        {    }你可以用 HyperLink 去做超連結
    hlModify.NavigateUrl = "****.aspx?id=***" 這樣去做
      

  4.   

     HyperLink hlModify = (HyperLink)e.Item.FindControl("hlModify");
    hlModify.NavigateUrl = "****.aspx?id=***" 這樣去做 
      

  5.   


     protected void dataList_ItemDataBound(object sender, DataListItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                #region
                DataRowView view = (DataRowView)e.Item.DataItem;
                Label lbl = (Label)e.Item.FindControl("lblType");
                string modifyType = lbl.Text;
                switch (lbl.Text)
                {
                    case "V":
                        lbl.Text = "视频";
                        break;
                    case "A":
                        lbl.Text = "音频";
                        break;
                    case "T":
                        lbl.Text = "文章";
                        break;
                }            #region 判断是否可以删除修改
                HyperLink hlModify = (HyperLink)e.Item.FindControl("hlModify");
                LinkButton lbtnDelete = (LinkButton)e.Item.FindControl("lbtnDelete");
                Label lblPublishGuid = (Label)e.Item.FindControl("lblPublishGUID");
                if (ViewState["URL"].ToString() == "Admin")
                {
                    hlModify.Visible = true;
                    lbtnDelete.Visible = true;
                    lbtnDelete.CommandName = lblPublishGuid.Text;
                    lbtnDelete.CommandArgument = Convert.ToString(view["IMAGE_PATH"]);
                    hlModify.NavigateUrl = new LEE.CIM.DATA.Utility().ApplicationPath + "/CIM/" + ViewState["URL"].ToString() + "/ModifyResource.aspx?PublishGuid=" + lblPublishGuid.Text + "&Model=Modify" + "&FOLDER=" + Convert.ToString(ViewState["FOLDER"]) + "&Type=" + modifyType + "&FlashID=" + Convert.ToString(ViewState["FlashID"]);
                }
    }我之前做的一個例子你看看
      

  6.   

    //前台加上主键标识绑定主键,红字处
    <asp:DataList ID="DataList1" runat="server" DataKeyField="orderid" >
    </asp:DataList>//后台取出主键
    int id = (int)this.DataList1.DataKeys[e.Item.ItemIndex];
      

  7.   

    在gridview的RowDataBound(object sender, GridViewRowEventArgs e)事件中
     e.Row.Cells[i]  这里的cells就是第几列,你可以看看里面属性或者方法还有一个e.Row.RowIndex这个就是行ID在RowCreated事件中仔细看看基本上你的问题就能解决了。
      

  8.   

    在RowDataBound事件里面
    使用e.row.FindCtrl("控件名")
    就可以获得唯一控件,然后可以对其初始化操作如果是事件的话 好像有个click的事件吧?
    通过 FindCtrl也能处理