我试图在代码隐藏中的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);
?>
答案 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)