这是我的转换函数调用:
<p><%# MyFunctions.getDocumentCategory(Eval("DocumentID"))%></p>
Run Code Online (Sandbox Code Playgroud)
这是功能:
public static string getDocumentCategory(int documentID)
{
string category;
StringBuilder sb = new StringBuilder();
// Get document categories
var ds = CategoryInfoProvider.GetDocumentCategories(documentID, "CategoryEnabled = 1", null);
// Check whether exists at least one category
if (!DataHelper.DataSourceIsEmpty(ds))
{
// Loop thru all categories
foreach (DataRow dr in ds.Tables[0].Rows)
{
sb.Append(Convert.ToString(dr["CategoryDisplayName"]) + ",");
}
}
string content = sb.ToString();
category = content.Split(',')[0];
return category;
}
}
Run Code Online (Sandbox Code Playgroud)
这是错误:
MyFunctions.getDocumentCategory(int) has some invalid arguments.
Run Code Online (Sandbox Code Playgroud)
我已经尝试了一种替代形式的函数,它接受字符串而不是整数但它会抛出相同的错误.我已经验证了Eval("DocumentID")单独放置时的工作原理.有任何想法吗?
Eval返回一个object.您需要将其转换为int,或更改函数以接受object,并将其转换object为int.
<p><%# MyFunctions.getDocumentCategory( Convert.ToInt32( Eval("DocumentID") ) )%></p>
Run Code Online (Sandbox Code Playgroud)
要么
public static string getDocumentCategory(object document)
{
int documentID = Convert.ToInt32( document );
etc...
}
Run Code Online (Sandbox Code Playgroud)