0

Gridview には、削除/編集ボタンのような各行のボタンがあります。これらのボタンはクライアント側のメソッド (onClick) にバインドされており、サーバー側のメソッドはありません。

問題は、最初にクリックしたときにボタンがクライアント側のメソッドを起動していないことですが、2回目にクリックすると機能します..

これは実際にはブラウザの問題ではありません。なぜなら、私はすべてのブラウザでチェックしたからです. 動作していません。

コード: この属性を gridview xx_RowDataBound メソッドの下にバインドしました。

ibCancel.Attributes["OnClick"] = "javascript: return CancelAdminExtension('" + hidRemarks.ClientID + "','" + bPastExtension + "','" + hidDelRecNr.ClientID + "','" + hidRecNr.Value + "','" + hidDelPurpose.ClientID + "','" + hidPurpose.Value + "');";

Javascript メソッド:

function CancelAdminExtension(strPurposeID, strPastExtension, strDelRecNr, strRecNr, strDelPurpose, strPurpose) {
  try
  {
      //some logic here

      hidDelRecNr.value = strRecNr;
      hidDelPurpose.value = strPurpose;

      return true;
  }
  catch(err)
  {
      return false;
  }
}

この問題を解決するためのアイデアを提案してください。

申し訳ありませんが、この質問は他の質問と重複している可能性があります。私の問題を解決する解決策が見つかりませんでした。

4

2 に答える 2

0

Attributes["OnClick"] の代わりにAttributes.Add("onclick", "script")を一度使用してみてください

ibCancel.Attributes.Add("onclick", "return(CancelAdminExtension('" + hidRemarks.ClientID + "','" + bPastExtension + "','" + hidDelRecNr.ClientID + "','" + hidRecNr.Value + "','" + hidDelPurpose.ClientID + "','" + hidPurpose.Value + "'));");
于 2012-08-07T09:50:45.813 に答える
0
protected void uxCustomGridView_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {                           

           LinkButton uxEditLinkButton = (LinkButton)e.Row.FindControl("uxEditLinkButton");
           uxEditLinkButton.Attributes["onclick"] = string.Format("return doEdit({0})", item.ID);      
        }
    }

最初のクリックに反応はありますか?通常、以下のコードを使用して、バックエンドでクライアント イベントをバインドします。

または、簡単なアラート機能を使用して onclick イベントをテストすることもできます。

于 2012-08-07T09:05:36.000 に答える