【问题标题】:How to call external javascript function to ClientSideEvents.Click event?如何将外部 javascript 函数调用到 ClientSideEvents.Click 事件?
【发布时间】:2017-05-20 03:43:37
【问题描述】:

我在网站上有 DevExpress().Button,它应该从焦点行获取特定的网格值并将其传递给外部函数。

这是我的按钮:

@Html.DevExpress().Button(
             settings =>
             {
                 settings.Name = "btnMyName";
                 settings.Width = 120;
                 settings.Height = 25;
                 settings.Text = "MyText";
                 settings.Styles.Native = true;
                 settings.ClientEnabled = true;
                 settings.ClientSideEvents.Click = "function(s, e) { gridView.GetRowValues(gridView.GetFocusedRowIndex(), 'MyValue', OnGetRowValues); }";
}).GetHtml()

我根本无法访问 OnGetRowValues 函数 - 总是得到相同的异常:

未捕获的 ReferenceError:未定义 OnGetRowValues

我的脚本与我的 .cshtml 文件位于同一文件夹中,并尝试以相对和绝对方式使用 <script src=""></script> 引用它。我试图将代码直接放在cshtml页面的脚本标签之间,但没有任何效果,而且我总是遇到同样的错误。迄今为止唯一可行的解​​决方案是将整个脚本作为对 ClientSideEvents.Click 的评估,但由于 OnGetRowValues 函数很大,它将变得混乱且完全不切实际的解决方案。任何帮助将不胜感激。

【问题讨论】:

    标签: javascript devexpress


    【解决方案1】:

    浏览Client-Side Events 文档并使用以下示例实现:

    <script type="text/javascript" src="~/Content/js/index.js"></script>
    <script type="text/javascript">
    
        function ButtonClick(s,e)
        {
            gridView.GetRowValues(gridView.GetFocusedRowIndex(), 'ShipName', OnGetRowValues);
        }
    </script>
    @Html.DevExpress().Button(settings =>
    {
        settings.Name = "btnGetSelectedRowValue";
        settings.UseSubmitBehavior = true;
        settings.ClientSideEvents.Click = "ButtonClick";
    }).GetHtml()
    
    
    @Html.Action("GridViewPartial")
    

    index.js

    // Value contains the "EmployeeID" field value returned from the server, not the list of values 
    function OnGetRowValues(Value) {
        // Right code 
        alert(Value);
        // This code will cause an error 
        // alert(Value[0]); 
    }
    

    希望对您有所帮助..

    【讨论】:

    • 您好,感谢您的建议。不幸的是,它没有帮助,原来我的代码很好,但缺少的是 html 页面中的标签 id="dxss_myCode"&lt;script&gt; 标签中的外部 JavaScript 的 id="dxis_myCode"
    • 如果您在 head 部分添加该外部 javascript 文件,然后您可以尝试调用实施,如示例中所示。我在需要访问 devexpress 控件的 webforms 应用程序中做了很多时间在外部 JavaScript 中。但请记住要注意 javascript 中的范围..
    • 我在外部文件中没有 devexpress 控制。它在 .cshtml 页面中,只有用于单击执行的 javascript 函数在外部文件中。我不知道为什么没有 id 就不行。
    • 是的。它们驻留在 aspx 页面上,但可以使用控件的 ClientInstanceName 访问。请查看这些控件的客户端库文档。
    猜你喜欢
    • 1970-01-01
    • 2021-05-06
    • 2018-04-22
    • 2013-01-12
    • 2011-02-25
    • 2021-05-07
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多