2017-05-19 7 views
0

나는 포커스 된 행에서 특정 그리드 값을 취하여 외부 함수에 전달해야하는 웹 사이트에서 DevExpress() 버튼을 사용합니다. 내 .cshtml 같은 폴더에있는 스크립트가ClientSideEvents.Click 이벤트에 외부 JavaScript 함수를 호출하는 방법은 무엇입니까?

Uncaught ReferenceError: OnGetRowValues is not defined

: - 항상 같은 예외가 단순히 기능을 OnGetRowValues에 도달 할 수

@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() 

: 여기

내 버튼입니다 파일을 사용하고 상대방과 절대적인 방법으로 <script src=""></script>으로 참조하려고했습니다. 나는 cshtml 페이지에 script 태그들 사이에서 직접 기능하도록 코드를 넣으려고했지만 아무 것도 작동하지 않으며 나는 항상 같은 오류를 얻는다. 지금까지 수행 된 유일한 해결책은 전체 스크립트를 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"'또는'