本人在DataList里加了一个HyperLinker的控件
NavigateUrl属性希望设置成fittingsbyproducer.aspx?pro=***
注:当前页面不是fittingsbyproducer.aspx
其中***需要从数据源中读取ProducerID字段数据,我写不好,望各位指教

解决方案 »

  1.   

    private void DataGridResult_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    //只处理列表项
    if(e.Item.ItemType ==ListItemType.Item||e.Item.ItemType == ListItemType.AlternatingItem)
    {
    //查找模板生成的控件并且修改其目标
    System.Web.UI.WebControls.HyperLink hl=(HyperLink)e.Item.FindControl("HyperLinkTopic");
    //注意对不同的数据源,e.Item.DataItem的类型也不同
    System.Data.DataRowView rec=(System.Data.DataRowView)e.Item.DataItem;
    if(rec!=null)
    {
    //编码会造成查询时内存溢出的日文片假名
    hl.Text=srwbbs.Global.JDecode(rec["Topic"].ToString());
    //根据参数和值建立目标URL
    NameValueCollection nvc=new NameValueCollection();
    nvc["ID"]=rec["ID"].ToString();
    nvc["BoardID"]=rec["BoardID"].ToString();
    string strURL="http://allgames.gamesh.com/srwbbs/topic.asp";
    strURL+=srwbbs.Global.BuildQueryString(nvc).ToString();
    //设置目标
    hl.NavigateUrl=strURL;
    }
    }
    }
    //从字符串:值的集合建立URL的参数字符串
    static public string BuildQueryString(NameValueCollection values) 

    StringBuilder sb = new StringBuilder(); 
    for (int i =0; i < values.Count; ++ i) 

    sb.Append(i == 0 ? "?" : "&"); 
    sb.Append(values.Keys[i]); 
    sb.Append("="); 
    sb.Append(HttpUtility.UrlEncode(values[i])); 

    return sb.ToString(); 
    }
      

  2.   

    <%#“fittingsbyproducer.aspx?pro=<%”+ Eval( "ProducerID")%>
      

  3.   

    fittingsbyproducer.aspx?id=<%#DataBinder.Eval(Container.DataItem,"id")%>
      

  4.   

    *** = <%#DataBinder.Eval(Container.DataItem,"ProducerID")%>