在gridview中单击“链接”按钮不会触发后面的代码

时间:2012-10-09 17:02:16

标签: asp.net gridview updatepanel modalpopupextender multiview

我在这个网站和其他网站上搜索过一个解决方案,但我找不到我的确切案例,所以这里有...

我有一个面板,通过使用模态弹出扩展器用作模态弹出窗口。此面板内部是一个包含多视图控件的更新面板。多视图的视图包含网格。针对不同视图的不同网格。网格上最左侧的字段是包含链接按钮的模板字段。这个应该触发后面的代码重定向到另一个页面。相反,它似乎重新打开弹出窗口而没有显示数据。

所以...这是我执行它们时的事件。

我单击网页上的一个按钮,打开包含网格的弹出窗口。正确的视图显示包含正确的网格,我的数据是正确的。我点击我的链接按钮,它应该指引我到一个新的页面,而我得到相同的弹出窗口,网格中没有数据。

我在其他网页上使用了这个确切的功能,唯一的区别是我不使用多视图。但是,我至少知道更新面板内网格中的链接按钮会触发后面的代码。

我尝试了一个图像按钮,它反应相同。超链接字段确实有效,可以使用,但我想知道我是否可以使链接按钮工作,以便我有更多的灵活性。

2 个答案:

答案 0 :(得分:0)

您可以在LinkBut​​ton上添加Click事件,在RowCreated中迭代Grid时添加此事件。

void GridView_RowCreated(Object sender, GridViewRowEventArgs e)
  {
    if(e.Row.RowType == DataControlRowType.DataRow)
    {
      LinkButton button= (LinkButton)e.Row.FindControl("IdButton");
      button.Click += YourDelegate; //Adjust here your called delegate
    }
  }

Nota:您必须确保每次发布数据时都不重新绑定网格

您可以使用

if( ! IsPostBack)
{
  //Bind your grid
}

你坚持使用ViewState

答案 1 :(得分:0)

  

点击我的链接按钮,它应该引导我到一个新的页面,而不是我得到相同的弹出窗口,网格中没有数据。

我认为你点击模态弹出多视图当前视图中的一个链接导航到另一个视图。你可以完全跳过这个&改为使用ASP.NET AJAX工具包的选项卡控件。您可以将每个gridview放在一个单独的选项卡中。删除链接按钮。