datagrid里直接点某一列的text,可以打开新的page。
用ie自带的“在新窗口中打开”,发现打开的page的地址是:
javascript:__doPostBack('DataGrid1$_ctl8$_ctl1','')请问如何处理,才能使“在新窗口中打开”能正常工作啊?

解决方案 »

  1.   

    你把datagrid中的text换成模板列,然后用<a href>test</a>
      

  2.   

    private void DataGrid1_ItemDataBound_4(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    { //特效
    if(e.Item.ItemIndex!=-1)
    {
    int orderid=e.Item.ItemIndex+1;
    e.Item.Cells[0].Text=orderid.ToString();
    e.Item.Attributes.Add("onmouseover","this.setAttribute('BKC',this.style.backgroundColor);this.style.backgroundColor='#3a6ea5'");
    e.Item.Attributes .Add("onmouseout","this.style.backgroundColor=this.getAttribute('BKC');");
    if(e.Item.ItemType==ListItemType.AlternatingItem||e.Item.ItemType==ListItemType.Item)
    {
    //弹出一个完整的IE窗口
    e.Item.Attributes.Add("onclick","window.open('message.aspx?actid="+e.Item.Cells[1].Text+"');");
    // e.Item.Attributes.Add("onclick","window.open('detail.aspx?ID="+e.Item.Cells[1].Text+"');");
    ////隐藏菜单栏地址栏工具条的IE,以下变量分别是新窗口的名字,窗口的宽度、高度,有滚动条,窗口距离屏幕上方和左侧的象素值
    //e.Item.Attributes.Add("onclick","window.open('detail.aspx?ID="+e.Item.Cells[1].Text+"','newwin','width=750,height=600,scrollbars=yes,top=50,left=50');"); 
    }
    }
    }
      

  3.   

    不要使用linkbutton
    而使用asp:hyperlink控件
      

  4.   

    我用的是linkbutton列,可以解决吗?
      

  5.   

    使用 ItemTemplate<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %>
    <%@ Import Namespace="System.Data" %>
    <script language="C#" runat="server">
     
       DataTable Cart;
       DataView CartView;
     
       ICollection CreateDataSource() 
       {
          DataTable dt = new DataTable();
          DataRow dr;
     
          dt.Columns.Add(new DataColumn("ID", typeof(Int32)));
          dt.Columns.Add(new DataColumn("UserName", typeof(string)));
          dt.Columns.Add(new DataColumn("Score", typeof(double)));
     
          for (int i = 0; i < 10; i++) 
          {
             dr = dt.NewRow();
     
             dr[0] = i;
             dr[1] = "学生 " + i.ToString();
             dr[2] = 30 + i*10;
     
             dt.Rows.Add(dr);
          }
     
          DataView dv = new DataView(dt);
          return dv;
       }
     
       void Page_Load(Object sender, EventArgs e) 
       {
     
          if (!IsPostBack) 
          {
             // Need to load this data only once.
             ItemsGrid.DataSource = CreateDataSource();
             ItemsGrid.DataBind();
          }
       }
       
       public static string GetScore(int intScore)
    {
    if(intScore > 80 )
    return "优秀";
    else if(intScore > 60)
    return "良好";
    else if(intScore == 60)
    return "及格";
    else if(intScore <60)
                    return "差";
    return "";
    }
    </script><html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>DataGrid Bind Score Sample</title>
    </head>
    <body>
     <form runat=server>      <h3>DataGrid Bind Score Sample Code By LaoDai_Net </h3>
     
          <asp:DataGrid id="ItemsGrid" runat="server"
               BorderColor="black"
               BorderWidth="1"
               CellPadding="3"
               ShowFooter="true"
               AutoGenerateColumns="false">
    <Columns>
     <asp:TemplateColumn SortExpression="Score" HeaderText="ID">
    <HeaderStyle Wrap="False" Width="100%"></HeaderStyle>
    <ItemTemplate>
    <%# DataBinder.Eval(Container.DataItem, "Score") %>
    </ItemTemplate>
    </asp:TemplateColumn>
     <asp:TemplateColumn SortExpression="UserName" HeaderText="学生姓名">
    <HeaderStyle Wrap="False" Width="100%"></HeaderStyle>
    <ItemTemplate>
    <a href="test.aspx" target="_blank"><%# DataBinder.Eval(Container.DataItem, "UserName") %></a>
    </ItemTemplate>
    </asp:TemplateColumn>
     <asp:TemplateColumn SortExpression="Score" HeaderText="学生成绩">
    <HeaderStyle Wrap="False" Width="100%"></HeaderStyle>
    <ItemTemplate>
    <%# DataBinder.Eval(Container.DataItem, "Score") %>
    </ItemTemplate>
    </asp:TemplateColumn> <asp:TemplateColumn SortExpression="Score" HeaderText="成绩等级">
    <HeaderStyle Wrap="False" Width="100%"></HeaderStyle>
    <ItemTemplate>
    <%# GetScore(Int32.Parse(DataBinder.Eval(Container.DataItem,"Score").ToString())) %>
    </ItemTemplate>
    </asp:TemplateColumn>
     
     </Columns>
       
          </asp:DataGrid>
        </form></body>
    </html>
      

  6.   

    同意二楼的...
    在模板列中这样写就行..
     <a href="/Expert/TopicView1.asp?id=4072059" target="_blank">从一个页面转到另一个页面,我想让两个页面都呈现出来,就像我们单击CSDN首页登录一样,登录界面出来了,CSDN首页并不消失,要实现这个,该怎么做?</a>
    就行了....