在代码隐藏中的Handler javascript函数中传递2个参数

时间:2017-07-21 14:55:28

标签: javascript c# ext.net

我试图在代码隐藏中的Handler调用中传递2个参数,但我无法使其工作。这是我的代码:

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

错误:

  

System.ArgumentException:DirectMethod:&#39; DoYesDeleteDepField&#39;,参数&#39; dep&#39; Ext.Net.DirectMethod.Invoke(Object target,HttpContext context,ParameterCollection args)在Ext.Net.ResourceManager.RaisePostBackEvent(String eventArgument)的Ext.Net.DirectMethod.Invoke(Object target,ParameterCollection args)中未定义。

    <?php
$serverName = "namesrv"; //serverName\instanceName
$connectionInfo = array( "Database"=>"Database", "UID"=>"sa", "PWD"=>"pass");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Connection established.<br />";
}else{
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT Code, Name FROM StoreCards";
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false) {
    die( print_r( sqlsrv_errors(), true) );
}

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
      echo $row['Code'].", ".$row['Name']."<br />";
}

sqlsrv_free_stmt( $stmt);

?>

2 个答案:

答案 0 :(得分:3)

你正在传递:

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

你写它的方式。

传递这个:

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

你应该画这样的一行:

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

答案 1 :(得分:0)

有关此答案的更多信息:初始参数被读取为字符串,因此javascript抛出'undefined'。

解决方案由于字符串连接而起作用,这是OOP上非常重要的概念。

有关字符串连接的更多信息,请参阅:如何Concatenate Multiple Strings (C# Programming Guide)