我在我的一个ASP.NET项目中使用了一个ASP.NET,它正在拖动字段,以便显示得很好。但是,当用户选择自动完成建议时,我需要函数从行(“ID”列是主键)中提取另一个字段,因为这是显示相关数据所需的字段。
这是我的密码
public string[] GetAutoComplete(string prefixText)
{
int count = 10;
string sql = "SELECT * FROM SageAccount WHERE Name LIKE @prefixText";
SqlDataAdapter da = new SqlDataAdapter(sql, "My Connection String(changed due to personal info being shown)");
da.SelectCommand.Parameters.Add("@prefixText", SqlDbType.VarChar, 50).Value = prefixText + "%";
DataTable dt = new DataTable();
da.Fill(dt);
string[] items = new string[dt.Rows.Count];
int i = 0;
foreach (DataRow dr in dt.Rows)
{
items.SetValue(dr["Name"].ToString(), i);
i++;
}
return items;
}编辑:我正在尝试的一些修改代码:
public string[] GetAutoComplete(string prefixText, int count)
{
string sql = "SELECT * FROM SageAccount WHERE Name LIKE @prefixText";
SqlDataAdapter da = new SqlDataAdapter(sql, "Con string");
da.SelectCommand.Parameters.Add("@prefixText", SqlDbType.VarChar, 50).Value = prefixText + "%";
DataTable dt = new DataTable();
da.Fill(dt);
List<string> Names = new List<string>();
//string[] items = new string[dt.Rows.Count];
int i = 0;
foreach (DataRow dr in dt.Rows)
{
Names.Add(AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(dr["Name"], dr["ID"].ToString());
//items.SetValue(dr["Name"].ToString(), i);
}
return Names.ToArray();我在这里遇到的问题是,它给了我错误:
'AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItems(string,字符串的最佳重载方法匹配)“有一些无效的争论”
有什么想法吗?非常感谢
发布于 2010-10-05 13:33:33
在过去,我曾经使用一个隐藏字段来保存所选的id。查看这里或浏览google并检查如何使用隐藏字段,我现在没有代码。
编辑2:检查一下您是否期望在新方法上有一个int参数,并且您正在调用一个字符串。然后..。检查是否正在调用另一个名为CreateAutoCompleteItems的方法,该方法似乎丢失了
https://stackoverflow.com/questions/3863995
复制相似问题