在datagrid中的模板列中添加的一个HyperLink的属性NavigateUrl='<%# DataBinder.Eval(Container, "DataItem.ProjectNum" , "TaskBookIn.aspx?sid={0}") %>'就是转到页面TaskBookIn.aspx并传递一个参数,这时候要转到的页面是固定的,即:TaskBookIn.aspx
如果这里的页面不是一个固定的值,而是由数据库中的一个字段URL来决定,而且在读取数据的时候我把它从数据库里边读了出来,请教一下该怎么写NavigateUrl属性呢
就是说怎么才能实现把要转换的页面的值绑定到URL字段上呢
比如说字段URL有2个不同的值a.aspx和b.aspx  当datagrid为第一行的时候对应的URL的值为a.aspx就是要转换到a.aspx页面  为第二行的时候却对应的URL的值为b.aspx要转换到b.aspx页面
只是要控制转换的页面,其他的条件不变,也就是说还是要传递参数之类的请高手给指点一下吧
多谢了急
在线等!!

解决方案 »

  1.   

    NavigateUrl='<%# DataBinder.Eval(Container, "DataItem.ProjectNum" , 字符串变量) %>'
      

  2.   

    和NavigateUrl='<%# DataBinder.Eval(Container, "DataItem.ProjectNum" , "TaskBookIn.aspx?sid={0}") %>'一样的啊
      

  3.   

    我说错了,这样要数据绑定才可以,
    在cs代码中,手动设置吧,读到DataReader里,再手动设置
      

  4.   

    xiahouwen(武眉博<活靶子.NET>) 
    NavigateUrl='<%# DataBinder.Eval(Container, "DataItem.ProjectNum" , 字符串变量) %>'请教具体怎么写的
    你那个”字符串变量“太笼统,说实话只是这样写对我没有一点帮助xyq1986(综艺一哥)
    在cs代码中,手动设置吧,读到DataReader里,再手动设置请教一下如果要在cs代码里边设置该怎么写呢
    说具体一点可以吗
    我之前也想到在cs代码里边写,可是因为没搞明白怎么写,而且觉得那样的话还得和后台再进行一次交互,效率不是很高就放弃了。如果是在cs代码里边写的话我是考虑用模板列+LinkButton来做会更好写一些请其他有知道怎么做的给指点指点
    最好是能在前台里边直接搞定的谢谢先
      

  5.   

    直接用NavigateUrl='<%# DataBinder.Eval(Container, "DataItem.ProjectNum" , "TaskBookIn.aspx?sid={0}") %>'也是可以的
    在<ItemTemplate>里<asp:HyperLink id="hl1" runat="server" NavigateUrl='<%# DataBinder.Eval(Container, "DataItem.ProjectNum" , "TaskBookIn.aspx?sid={0}") %>'/>
      

  6.   

    xyq1986(综艺一哥) 
    我这里要转换到的页面不是固定的TaskBookIn.aspx
    所以不能这样写的
    可能是我没有表达清楚吧  我要实现的效果就是点击datagrid中的一行时就转入这行数据所对应的页面
    这个页面的具体地址是由数据库中的列URL来决定的  就是说不同的行对应的页面都可能是不同的
    这个列在读取数据库数据的时候我把它放到了一个dataset中  但是这一列在datagrid中不显示出来
    现在我就是想当点击datagrid中的某一行的时候就调用这一行所对应的URL的值来转入一个新的页面,同时传递一个参数到新的页面去
    并不是由我们直接写一个固定的页面地址进去  应该是调用列URL的值来动态的添加要转换的页面的地址请问一下这个应该怎么实现呢请高手给指点一下吧真的很郁闷
    昨天晚上回去想了好久都没有解决
    真的希望能有好心人帮我解惑不胜感激!!!!
      

  7.   

    学习一下,不过我觉得也可以用Redirect来编写.呵呵
      

  8.   

    不一定要用后期绑定呀,在ItemDataBound事件中这样做:
    private void DataList1_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
    {
    if (e.Item.ItemType == ListItemType.Item ||
    e.Item.ItemType == ListItemType.AlternatingItem ||
    e.Item.ItemType == ListItemType.SelectedItem ||
    e.Item.ItemType == ListItemType.EditItem)
    {
    HyperLink lk = ((HyperLink)e.Item.FindControl("HyperLink的ID"));
    lk.NavigateUrl=((DataRowView)e.Item.DataItem).Row["URL"].ToString()+"?sid="+((DataRowView)e.Item.DataItem).Row["ProjectNum"].ToString();
    }
    }
      

  9.   

    Click the link to solve your problem.Good luck!