【问题标题】:Call JavaScript function while the asp:LinkButton been clicked单击 asp:LinkBut​​ton 时调用 JavaScript 函数
【发布时间】:2011-06-20 05:28:54
【问题描述】:

只是想知道,是否可以在单击时调用 asp:LinkBut​​ton 下的 JavaScript。

示例: 我有以下代码,我希望它在单击时调用 JavaScript 函数 (test())。我该怎么办?

    <asp:ListView ID="lvTest" runat="server" DataSourceID="dsTest" DataKeyNames="TestID"
    OnItemCommand="lvTest_ItemCommand">
    <LayoutTemplate>
      <ul style="color:#fe8113;">
        <asp:PlaceHolder ID="itemPlaceholder" runat="server" />
      </ul>
    </LayoutTemplate>
    <ItemTemplate>
      <li>
        <asp:LinkButton runat="server" CausesValidation="true" CommandName="" CssClass="orange"
          Text='<%# Eval("TestName")%>'/>
      </li>
    </ItemTemplate>
  </asp:ListView>

【问题讨论】:

    标签: c# javascript jquery asp.net .net


    【解决方案1】:

    您也可以在设计本身上添加所需的属性为 OnClientClick,而不是在后面的代码中绑定它。

     <asp:ListView ID="lvTest" runat="server" DataSourceID="dsTest" DataKeyNames="TestID"
        OnItemCommand="lvTest_ItemCommand">
        <LayoutTemplate>
          <ul style="color:#fe8113;">
            <asp:PlaceHolder ID="itemPlaceholder" runat="server" />
          </ul>
        </LayoutTemplate>
        <ItemTemplate>
          <li>
            <asp:LinkButton runat="server" CausesValidation="true" CssClass="orange" OnClientClick="return test();"
              Text='<%# Eval("TestName")%>'/>
          </li>
        </ItemTemplate>
      </asp:ListView>
    

    现在可以添加Javascript功能

    <script language="javascript" type="text/javascript">
    function test()
    {
        //add the required functionality
        alert('Hi');
    }
    </script>
    

    【讨论】:

      【解决方案2】:

      您需要为您的链接按钮分配 id 才能使您的代码中缺少的以下代码正常工作。

       protected void GridView1_RowDataBond(object source, GridViewRowEventArgs e)
          {
              if (e.Row.RowType == DataControlRowType.DataRow)
              {
                  LinkButton btnAlertStatus = (LinkButton)e.Row.FindControl("btnAlertStatus");
      
                      btnAlertStatus.Attributes.Add("onclick", "alert('test'); ");
              }
          }
      

      您可以将 javascript 附加到 GridView1_RowDataBond 事件中的按钮控件,如我在上面的代码中所示。

      【讨论】:

      • 确保 btnAlertStatus 不为空,否则可能引发错误
      【解决方案3】:
      <asp:LinkButton ID= "lnkButton" runat="server" CausesValidation="true" CommandName="" CssClass="orange"
                Text='<%# Eval("TestName")%>'/>
      
      <script language="javascript" type="text/javascript">
      function test() {
      
       // your code goes here ..
      
      }
      </script>
      

      在文件后面的代码中写这个

      protected void Page_Load(object sender, EventArgs e)
      {
          lnkButton.Attributes.Add("onclick", "return test()");
      }
      

      【讨论】:

        【解决方案4】:

        onclientclick="JsFunctionNameHere()" 添加到&lt;asp:LinkButton&gt; 对我来说就像是一种魅力。

        【讨论】:

        • 一个好的答案将始终包括解释为什么这会解决问题,以便 OP 和任何未来的读者可以从中学习。
        猜你喜欢
        • 2019-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-15
        • 2020-12-05
        • 1970-01-01
        相关资源
        最近更新 更多