按钮在一个新的窗口中打开.Net 3.5)

本文关键字:Net 窗口 按钮 一个 | 更新日期: 2023-09-27 18:15:49

我有一个gridview在我的ASPX页面。这个GridView在UpdatePanel中,它导致部分页面回发。

我有一个按钮作为GridView中每行的最后一列。我如何打开temp.aspx页面与ID值传递给它的每个按钮的点击。我在gridView中也有一个ID列。

请帮

按钮在一个新的窗口中打开.Net 3.5)

你可以得到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);
     }
}

你不能从OnClick事件打开一个新窗口。尝试在gridview的RowDataBound事件中使用OnClientClick。

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

就像这样