【问题标题】:Js function call with param on HyperLink在 HyperLink 上使用参数调用 Js 函数
【发布时间】:2015-05-26 08:17:42
【问题描述】:

我试图在需要 RowID 作为参数的 HyperLink 上调用我的 js 函数,但我做不到!

我尝试了很多方法,但总是无效。

我怎样才能做到这一点?

<script>
        var popUpObj;

        function RowClick(filterId) {

            popUpObj = window.open("voucher.aspx?param=" + filterId + "",
             "ModalPopUp",
             "toolbar=no," +
             "scrollbars=no," +
             "location=no," +
             "statusbar=no," +
             "menubar=no," +
             "resizable=0," +
             "width=530," +
             "height=500," +
             "left = 450," +
             "top=130"
            );
             popUpObj.focus();
             LoadModalDiv();


         }
    </script>



 <MasterTableView ClientDataKeyNames="RowID" AllowPaging="True" AllowAutomaticDeletes="True" AllowAutomaticInserts="True" AllowAutomaticUpdates="True" CommandItemDisplay="Top" DataKeyNames="RowID" AllowCustomPaging="False" AutoGenerateColumns="False" AllowMultiColumnSorting="True"   >
            <Columns>
                <telerik:GridBoundColumn DataField="RowID" DataType="System.Int32" FilterControlAltText="Filter RowID column" HeaderText="RowID" ReadOnly="True" SortExpression="RowID" UniqueName="RowID" Visible="False">
                </telerik:GridBoundColumn>

     <telerik:GridTemplateColumn FilterControlAltText="Filter RowID column" UniqueName="RowID" >
                        <ItemTemplate>
                            <asp:HyperLink runat="server" NavigateUrl="javascript:RowClick()"  Text="Add voucher link"></asp:HyperLink>

                             </ItemTemplate>
                    </telerik:GridTemplateColumn>

【问题讨论】:

  • 你调用"javascript:RowClick()" 没有参数,所以确保你有filterId参数undefined。你如何尝试传递参数?
  • 是 javascript:RowClick(RowID) 并且仍然为空
  • 你在哪里得到RowID
  • ClientDataKeyNames="RowID"
  • 所以你只写NavigateUrl="javascript:RowClick(RowID)"NavigateUrl 只是字符串,它按原样呈现,所以在 html 中你有类似 &lt;a href="javascript:RowClick(RowID)"&gt; 的东西并确保它不起作用

标签: javascript c# asp.net function


【解决方案1】:

使用 LinkBut​​ton 而不是 HyperLink。请参见下面的示例。

<asp:LinkButton ID="btn" Text="Add voucher link" runat="server" 
 OnClientClick='<%# "RowClick(" + Eval("RowID") + "); return false;" %>'></asp:LinkButton>

【讨论】:

  • Uncaught SyntaxError: Unexpected token
  • 编辑了 LinkBut​​ton 控件。以示例为指导。
  • 仍然:未捕获的 ReferenceError:未定义 filterId
【解决方案2】:

为了修复你的错误 服务器标签格式错误你应该使用单引号作为属性值,并在绑定中创建导航 url

<asp:HyperLink runat="server" NavigateUrl='<%# string.Format("javascript:RowClick({0})",Eval("RowID"))%>'  Text="Add voucher link"></asp:HyperLink>

但如果你需要简单的链接,我认为最好只使用 a 标签,比如

<a href="javascript:RowClick('<%# Eval("RowID") %>')" >Add voucher link</a>

在我看来,它更容易阅读

【讨论】:

    猜你喜欢
    • 2022-01-24
    • 2021-07-23
    • 2017-11-21
    • 2018-05-11
    • 1970-01-01
    • 2021-09-27
    • 2021-04-07
    • 2022-01-26
    • 1970-01-01
    相关资源
    最近更新 更多