我在我的ASPX頁面中有一個gridview。這個GridView在一個UpdatePanel裏面,這會導致部分頁面回發。GridView中的按鈕在新窗口中打開(ASP.Net 3.5)
我有一個按鈕作爲GridView中每一行的最後一列。如何打開temp.aspx頁面,並將ID值傳遞給每個按鈕的onClick。我在gridView中也有一個ID列。
請幫忙
我在我的ASPX頁面中有一個gridview。這個GridView在一個UpdatePanel裏面,這會導致部分頁面回發。GridView中的按鈕在新窗口中打開(ASP.Net 3.5)
我有一個按鈕作爲GridView中每一行的最後一列。如何打開temp.aspx頁面,並將ID值傳遞給每個按鈕的onClick。我在gridView中也有一個ID列。
請幫忙
您無法從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
就是這樣。
你可以得到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);
}
}