我在GridView里面有个在后台生成的超链接,当点击该链接时在前台获得该行的一些信息,并将这些信息传向新页面,但新页面却加载了两次,请各位大侠指教一下是为什么呢?下面是我的部分代码:
old.aspx页面的JavaScript代码:
function modify(i)
   {var grvtr=document .getElementById ('GridView1').getElementsByTagName. 'tr')[i].getElementsByTagName('td')[1].innerText; 
       var field=document.getElementById('Label2').innerText;
       var dt=document.getElementById('Label3').innerText;
       document .getElementById ('iframe1').src ="new.aspx?field_value="+grvtr+ "& field=" + field + "& dt=" + dt +  "";}
old.aspx。cs后台代码:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
      int index = e.Row.RowIndex + 1;           
      e.Row.Cells[3].Text = "<a href=\"javascript:\" onclick=\"javascript:modify(" + index + ")\">修改</a>";
}
new.aspx.cs的后台代码:
protected void Page_Load(object sender, EventArgs e)
    {
       if (!IsPostBack)
        {
            field_value = Request.QueryString[0].ToString();  // 得到字段值           
            field = Request.QueryString[1].ToString();  // 得到字段  
            dt = Request.QueryString[2].ToString();  // 得到表名           
            this.Label1.Text = field_value.Trim() ;
        }
    }
页面转向之后Page_Load运行了两次

解决方案 »

  1.   

    试试
    e.Row.Cells[3].Text = "<a href=\"#\" onclick=\"modify(" + index + ");return false;\">修改</a>";
      

  2.   

     e.Row.Cells[3].Text = "<a href=\"#\" onclick=\"javascript:modify(" + index + ")\">修改</a>";
      

  3.   

    单击也可修改document.getElementById('iframe1').src = 'Default2.aspx';
      

  4.   

    楼上的方法我试过了,还是不行啊。还有我的代码在火狐和谷歌浏览器中测试通过,但就是IE不行,那问题是不是就出在js上面?
      

  5.   

    iframe的问题吧
    如果你在地址栏里输入了URL了,就不要在js里跳转了
      

  6.   

       我贴的function modify(i)函数只写了一个分支,实际代码里还有另一个分支,是我没写break的原因,疏忽了。不过我不写break火狐和谷歌浏览器却能识别。
       还是谢谢你们了