目前已实现:
         <Columns>            <asp:HyperLinkColumn
                 HeaderText="Select an Item"
                 DataNavigateUrlField="IntegerValue"
                 DataNavigateUrlFormatString="detailspage.aspx?id={0}"
                 DataTextField="PriceValue"
                 DataTextFormatString="{0:c}"
                 Target="_blank"/>
           
         </Columns>
可是我想带多个参数,想如下,
         <Columns>            <asp:HyperLinkColumn
                 HeaderText="Select an Item"
                 DataNavigateUrlField="IntegerValue,Name"
                 DataNavigateUrlFormatString="detailspage.aspx?id={0}&name={1}"
                 DataTextField="PriceValue"
                 DataTextFormatString="{0:c}"
                 Target="_blank"/>
           
         </Columns>
结果运行时,编译器把“IntegerValue,Name”当作一个字段了,告诉我找不到这样的字段。我想问,是我的写法不对还是只能带一个参数,有没有好点的办法?望高手指教!

解决方案 »

  1.   

    寫法不對;DataNavigateUrlField="IntegerValue,Name",不能這樣寫:
    你可以直接這樣寫:
    <asp:TemplateColumn HeaderText="Column">
      <ItemTemplate>
        <asp:Hyperlink runat="server" Text='<%#Container.DataItem("column")%>' 
    NavigateUrl='xx.aspx?id=<%# DataBinder.Eval(Container.DataItem, "id"%>&name=<%# DataBinder.Eval(Container.DataItem, "Name"%>'
     </ItemTemplate>
    </asp:TemplateColumn>
      

  2.   

    to:cody416(cody),谢谢你,不用模板列不可以吗?
      

  3.   

    不用模板列也可以,可以在DataGrid的ItemDataBound事件处理程序中实现,象这样:void grid1_ItemDataBound(object src,DataGridItemEventArgs e){
    HyperLink hlink=e.Item.Cells[2].Controls[0] as HyperLink;
    if(hlink!=null){
    //可以在这根据当前行绑定的数据项中的内容设置HyperLink的NavigateUrl属性,想加多少个参数都可以
    }
    }
      

  4.   

    对不起,上面的代码短了两个判断当前行数据的的代码,改一下:void grid1_ItemDataBound(object src,DataGridItemEventArgs e){
    if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem){
    HyperLink hlink=e.Item.Cells[2].Controls[0] as HyperLink;
    if(hlink!=null){
    //可以在这根据当前行绑定的数据项中的内容设置HyperLink的NavigateUrl属性,想加多少个参数都可以
    }
    }
    }
      

  5.   

    <Columns>            <asp:HyperLinkColumn
                     HeaderText="Select an Item"
                     DataNavigateUrlField="IntegerValue,Name"
                     DataNavigateUrlFormatString="<%# String.Format("detailspage.aspx?id={0}&name={1}",DataBinder.Eval(Container.DataItem, "id"),DataBinder.Eval(Container.DataItem, "name"))%>"
                     DataTextField="PriceValue"
                     DataTextFormatString="{0:c}"
                     Target="_blank"/>
               
             </Columns>