2017-07-21 9 views
0

コードビハインドのハンドラ呼び出しで2つのパラメータを渡そうとしていますが、動作させることができません。ハンドラの引数2つをコードビハインドに渡します

X.Msg.Confirm("Confirm", "The field has " + dependency.Count() + " dependent fields. Are you sure you want to proceed? (The dependent fields will be deleted also)", new MessageBoxButtonsConfig 
{ 
    Yes = new MessageBoxButtonConfig 
    { 
     Handler = "App.direct.UC.DoYesDeleteDepField('" + fieldname + "," + dependency + "')", //ERROR LINE 
     Text = "Yes" 
    }, 
    No = new MessageBoxButtonConfig 
    { 
     Handler = "", 
     Text = "No" 
    } 
}).Show(); 

エラー:

System.ArgumentException: DirectMethod: 'DoYesDeleteDepField', The parameter 'dep' is undefined at Ext.Net.DirectMethod.Invoke(Object target, HttpContext context, ParameterCollection args) at Ext.Net.DirectMethod.Invoke(Object target, ParameterCollection args) at Ext.Net.ResourceManager.RaisePostBackEvent(String eventArgument)

[DirectMethod] 
public void DoYesDeleteDepField<T>(string fieldname, List<MyDependenciesClass> dep) 
{.... 

答えて

3

あなたが渡している:あなたはそれを書か

App.direct.UC.DoYesDeleteDepField('fieldname,dependency') 

方法ここに私のコードです。

はこれを渡すには:

"App.direct.UC.DoYesDeleteDepField('" + fieldname + "', '" + dependency + "')" 
0

この回答の詳細について:

App.direct.UC.DoYesDeleteDepField('fieldname', 'dependency') 

は、あなたがこのような線を描く必要がある最初のパラメータは文字列として読まれていた、これはJavaScript 「未定義」を投げた。

このソリューションは、OOPの非常に重要な概念である文字列連結のために機能します。

文字列連結の詳細については、次を参照してください。Concatenate Multiple Strings (C# Programming Guide)

関連する問題