2017-05-19 89 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」'或'

相關問題