在属性生成器里面,增加一个链接列,
URL字段为标志位,URL格式字符串为NewPage.aspx?sFlag={0}把新增和查看做到一个页面!
页面的Page_load事件里面得到传递的参数 Request["sFlag"].ToString()
然后决定页面是何种形式

解决方案 »

  1.   

    我现在做grid里的页面用的是土办法。
    数据集里自己CASE 1 "NewPage.aspx" ELSE "EditPage.aspx" END AS 一个字段 LINKS ,然后绑定。
      

  2.   

    aspx
    <ItemTemplate>
    <asp:HyperLink id="HyperLink1" runat="server" NavigateUrl='<%# GetUrl(DataBinder.Eval(Container.DataItem, "Flag").ToString()) %>'></asp:HyperLink>
    </ItemTemplate>aspx.cs
    public string GetUrl(string flag)
    {
      if (flag == "true")
        return "View.aspx";
      else
        return "New.aspx";
    }
      

  3.   

    aspx页面
    在DataGrid中加入一个模板列,模板列中有一个HyperLink (ID = “OperationLink”)
    代码如下:
    <asp:TemplateColumn HeaderText="" FooterText="">
    <ItemTemplate>
    <asp:HyperLink id="OperationLink" runat="server">查看</asp:HyperLink>
    </ItemTemplate>
    </asp:TemplateColumn>
    後台代碼
    根据标志位的值动态改变 HyperLink 的属性。这里假定你的标志列是DataGrid的第一列。for(int i=0; i<DataGrid1.Items.Count;i++)
    {
    HyperLink TempLink = (HyperLink)DataGrid1.Items[i].FindControl("OperationLink");
    if(DataGrid1.Items[i].Cells[0].Text = "true")
      {
        TempLink.Text = "查看";
        TempLink.NavigateUrl = "你的查看连接";
       }
    else
      {
        if(DataGrid1.Items[i].Cells[0].Text = "1")
        {
          TempLink.Text = "新建";
          TempLink.NavigateUrl = "你的新建连接";
        }
      }
    }
      

  4.   

    vb.net 下
    url 字段id
    url格式化字符串tzshow.aspx?id={0}&lookup=true
    可是我还需要把cbflag(绑定列)的值也传过去,根据id和cbflag和lookup的值来进行不同的操作
      

  5.   

    <asp:TemplateColumn HeaderText="成本单">
       <ItemTemplate>
          <%if flag="是" then%>
    <a href=#>查看页面</a>
             <%else%>
             <a href=#>新建页面</a>
    <%end if%>
    </ItemTemplate>
    </asp:TemplateColumn>
    flag  是标志位
      

  6.   

    做一个中间页面,这个页面负责查看或者专项新建的页面
    查看的时候,根据datagrid超级链接列传过来的参数读取
    新建的时候也根据datagrid传来的参数判断,然后转向新建页面,同样也可以传参