1

ここでは、JavaScript を使用してボタンのクリックを確認する必要があります。つまり、ボタン A がクリックされた場合は JavaScript 関数を呼び出し、ボタン B がクリックされた場合は別の JavaScript 関数を呼び出します。

if(document.getElementById('imgBTNExportPPT').clicked == true)
{
   ShowDialogExportPPTPOPUP();
}
else if(document.getElementById('btnShowModal').clicked == true)
{
   ShowDialogPrintPOPUP();
}

      <asp:ImageButton ID="imgBTNExportPPT" runat="server" Width="15" Height="15" border="0"
                                                            OnClick="imgBTNExportPPT_Click" ImageUrl="~/Images/PPT_icon.png" />
  <asp:ImageButton ID="btnShowModal" runat="server" Width="15" Height="15" border="0"
                                                         ImageUrl="~/Images/Print_icon.png" onclick="btnShowModal_Click"  />

それは可能ですか??任意の提案??

4

4 に答える 4

5

これを試して :

function buttonClicked(choice)
{
   if(choice == 'A')
   {
      ShowDialogExportPPTPOPUP();
   }
   else if(choice ==  'B')
   {
      ShowDialogPrintPOPUP();
   }
}

HTML コードは次のようになります。

<input type='button' value='ButtonA' onclick="buttonClicked('A')" />
<input type='button' value='ButtonB' onclick="buttonClicked('B')" />

サーバー側のコントロールの場合は、次の 2 つの方法で実行できます。

  <asp:ImageButton onClientClick="buttonClicked('A')" ID="imgBTNExportPPT" runat="server" Width="15" Height="15" border="0"
                                                            OnClick="imgBTNExportPPT_Click" ImageUrl="~/Images/PPT_icon.png" />
  <asp:ImageButton onClientClick="buttonClicked('A')" ID="btnShowModal" runat="server" Width="15" Height="15" border="0"
                                                         ImageUrl="~/Images/Print_icon.png" onclick="btnShowModal_Click"  />

または (C#)

{
 imgBTNExportPPT.Attributes.Add("onclick", "buttonClicked('A')");
 btnShowModal.Attributes.Add("onclick", "buttonClicked('B')");
}

http://msdn.microsoft.com/en-us/library/7a9d6h4f(v=vs.80).aspx

于 2012-06-28T11:03:24.950 に答える
3

JavaScript 関数を割り当てるには、ImageButton の OnClientClick 属性を使用する必要があります。これを JavaScript 呼び出しで渡して、クリックされているボタン オブジェクトを取得できます。

OnClientClick="TestClick('A', this);" これをボタンに追加

.aspx ページ内

<asp:ImageButton OnClientClick="TestClick('A', this);" ID="imgBTNExportPPT" runat="server" Width="15" Height="15" border="0"                                                                  OnClick="imgBTNExportPPT_Click" ImageUrl="~/Images/PPT_icon.png"  />

<asp:ImageButton OnClientClick="TestClick('B', this);" ID="btnShowModal" runat="server" Width="15" Height="15" border="0"
                                                                 ImageUrl="~/Images/Print_icon.png" onclick="btnShowModal_Click"  />

スクリプト内

function TestClick(choice, btnClicked)
{
   alert(btnClicked.id + " clicked");
   if(choice == 'A')
   {
      ShowDialogExportPPTPOPUP();
   }
   else if(choice ==  'B')
   {
      ShowDialogPrintPOPUP();
   }
}
于 2012-06-28T11:11:14.357 に答える
2

識別子を追加するか、onclick イベントで関数を呼び出すだけです。例えば:

<script type="text/javascript">
    function onButtonClick(button)
    { 
        alert("button " + button + " clicked!"); 
    }
</script>

<button id="ButtonA" onclick="javascript:onButtonClick('buttonA'); return false;" />
<button id="ButtonB" onclick="javascript:onButtonClick('buttonB'); return false;" />
于 2012-06-28T11:08:54.233 に答える
2

これが良い例です。コードをコールバックとして転送し、runOnce以下のような onclick イベント ハンドラーを作成して、関数を 1 回の呼び出しに制限します。

function runOnce( callback ) {

  var done = false;

  return function() {

    if ( !done ) {
      done = true;

      callback();

    }

  };

}

var one = runOnce(function() {
    alert('Once');
}),
    two = runOnce(function() {
    alert('Once only too.');
});

document.getElementById('first').onclick = one;
document.getElementById('second').onclick = two;

ここにデモがあります

于 2012-06-28T11:18:27.823 に答える