0

asp.net、c#3.5、vs2008を使用。

行のボタンがクリックされたときに呼び出されるonrowcommandメソッドの背後にあるc#コードを使用したgv1というaspxグリッドビューがあります。

グリッドビューのボタンは動的に生成されています。

サーバーへのラウンドトリップを回避するために、その分離コード呼び出しをjavascript関数に置き換えようとしています。

どうすればよいですか?

これまでに試しました

  1. foreachループでボタンを動的に生成しているときに、コードビハインドに行属性を追加しましたが、機能しませんでした。

    r.Attributes.Add( "OnRowCommand"、 "javascript:gv1RowCommand(ID);");

  2. 実行前にエラーが発生する次の例:オーバーロードされたメソッドは1引数を取りません

    <asp:GridView ID="gv1" runat="server" onrowcommand="gv1RowCommand(ID)" ...
    
  3. イベントなど他にも色々onchange , onselected

次のJavaScriptを使用して、呼び出されるようにすることができるかどうかを確認しています。

function gv1RowCommand(ID) { 
alert(
"row command"); 
}
4

2 に答える 2

2

最初にボタンのオブジェクトを作成してから、それに属性を追加する必要があります。以下のコードを確認してください -

foreach (GridViewRow row in gv1.Rows)
 {
    //Creates object of button inside your gridView Row
    Button btnRowCommand = (Button)row.FindControl("YourButtonName");
    //Adds Attribute to button- in this case adds onclick attribute 
    //which will fire the 
    //gv1RowCommand(ID); javascript function
    btnRowCommand.Attributes.Add("onclick", "gv1RowCommand('"+ ID +"');"); 
 }

それ以外の

// dont use this code  
 r.Attributes.Add("OnRowCommand", "javascript:gv1RowCommand(ID);");  
// dont use this code

これにより、ユーザーがグリッドビュー内のボタンをクリックすると、JavaScript 関数gv1RowCommand(ID)が起動します。gridView での JavaScript の使用についてさらに詳しい情報が必要な場合は、メールまたは返信してください。上記のコード スニペットでは不十分な場合は、さらに多くのコード リストを投稿して、それに応じて適切なコードを投稿することができます。

于 2009-09-25T17:35:20.097 に答える
0

いじることができるJavascriptイベント:

Javascript イベント

Javascript のページ メソッドまたはプロパティのいずれにもアクセスできません。Ajax を使用しない限り、永続的なものにアクセスすることはできません... したがって、RowCommand で行うことで、クライアントの JavaScript レイヤーに移植できることはあまりありません。

于 2009-09-25T17:12:38.080 に答える