2017-05-19 111 views
0

我在网站上有一个DevExpress()按钮,它应该从关注的行中获取特定的网格值并将其传递给外部函数。如何将外部JavaScript函数调用到ClientSideEvents.Click事件?

这里是我的按钮:

@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功能 - 总是得到相同的异常:

Uncaught ReferenceError: OnGetRowValues is not defined

我在同一文件夹中的脚本作为我的.cshtml文件并试图以相对和绝对的方式用<script src=""></script>来引用它。我试图让代码直接在脚本标记到cshtml页面之间运行,但没有任何效果,并且我总是得到相同的错误。迄今为止唯一的解决方案是将整个脚本作为ClientSideEvents.Click的附件,但由于OnGetRowValues函数很大,它将变得杂乱和彻底的不切实际的解决方案。任何帮助将不胜感激。

回答

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]); 
} 

希望这有助于..

+0

感谢您的建议你好。不幸的是,它并没有帮助,原来我的代码很好,但是缺少的是在'html ='页面中标记'id =“dxss_myCode”'或'

相关问题