2011-11-28 25 views
1

私はASPXページにgridviewを持っています。このGridViewは、部分ページポストバックを引き起こすUpdatePanelの内部にあります。新しいウィンドウ(ASP.Net 3.5)で開くGridViewのボタン

私はGridViewの各行の最後の列としてボタンを持っています。各ボタンのonClickに渡されたID値でtemp.aspxページを開くにはどうすればいいですか?私はグリッドビューにもID列を持っています。

助けてください

答えて

0

OnClickイベントから新しいウィンドウを開くことはできません。そのグリッドビューの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 

このようなものです。

1

あなたは、その行にしたいコントロールを見つけて、あなたのOnClick JavaScriptを適用し、各行OnRowDataBoundについてDataSourceを取得することができます。

<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); 

    } 

} 
関連する問題