Кнопка в GridView для открытия в новом окне (ASP.Net 3.5) - PullRequest
1 голос
/ 28 ноября 2011

У меня есть сетка на моей странице ASPX. Этот GridView находится внутри UpdatePanel, что вызывает частичные обратные передачи страниц.

У меня есть кнопка в качестве последнего столбца для каждой строки в GridView. Как открыть страницу temp.aspx со значением ID, передаваемым ей на клике каждой кнопки. У меня есть столбец ID в gridView тоже.

Пожалуйста, помогите

Ответы [ 2 ]

1 голос
/ 28 ноября 2011

Вы можете получить DataSource для каждой строки OnRowDataBound, затем найти нужный элемент управления в этой строке и применить свой OnClick JavaScript:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
          OnRowDataBound="GridView1_RowDataBound">
    <Columns>
    <asp:TemplateField HeaderText="Example"
        <ItemTemplate>
        <asp:label ID="YourSpanToClick" runat="server" />
        </ItemTemplate>
        <ItemStyle HorizontalAlign="Center" />
    </asp:TemplateField>
    </Columns>
</asp:GridView>

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
     if (e.Row.RowType == DataControlRowType.DataRow)
     {
        Label yourSpanToClick= (Label)e.Row.FindControl("YourSpanToClick");

        YourDataSrcRowObject rowObject= DataBinder.Eval(e.Row.DataItem) as YourDataSrcRowObject ;
        string js = String.Format("window.open('{0}');", "temp.aspx?Id=" + rowObject.Id)
        yourSpanToClick.Attributes.Add("onclick",js);

     }

}
0 голосов
/ 28 ноября 2011

Вы не можете открыть новое окно из события OnClick. Попробуйте OnClientClick внутри события RowDataBound этого вида сетки.

Private Sub DataGridView1_OnRowDataBound(Sender as Object, e as DataGridView.EventArgs)
   Dim btn as Button=e.Row.FindControl("btnName")
   btn.OnClientClick="javascript:window.open(""temp.aspx?id=22"")
End Sub

Как то так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...