基于ASP.NET 的WEB网页添加下拉菜单时遇到问题。
有一ASP.NET WEB网站,C#的,想在上面新增一个下拉菜单,但是菜单里面的数据是从SQLSERVER获取的,一时间没找到好的解决方法,来此求教。
C#代码如下,主要是通过存储过程Web_SelectUserid来获取userid,然后返回一系列option字符,然后不知道怎么写前端的cshtml来实现。
这个是WEB能用的格式,但是不知道怎么换成读SQL的。。
C#代码如下,主要是通过存储过程Web_SelectUserid来获取userid,然后返回一系列option字符,然后不知道怎么写前端的cshtml来实现。
public static string GetUserIdSelect(string account)
{
string connectionString = ConfigurationManager.ConnectionStrings["Web"].ConnectionString;
SqlConnection sqlConnection = null;
try
{
sqlConnection = new SqlConnection(connectionString);
sqlConnection.Open();
}
catch (Exception)
{
}
SqlDataReader sqlDataReader = null;
string selectstr = "<option>----请选择----</option>";
try
{
SqlCommand sqlCommand = new SqlCommand();
sqlCommand.CommandText = "Web_SelectUserid";
sqlCommand.CommandType = CommandType.StoredProcedure;
sqlCommand.Connection = sqlConnection;
sqlCommand.Parameters.Add("@account", SqlDbType.NVarChar, 32).Value = account;
sqlDataReader = sqlCommand.ExecuteReader();
if (sqlDataReader.HasRows)
{
while (sqlDataReader.Read())
{
selectstr += "<option>" + sqlDataReader["Userid"].ToString() + "</option>";
}
}
}
catch (Exception)
{
}
finally
{
sqlDataReader.Close();
sqlConnection.Close();
}
return selectstr;
}
这个是WEB能用的格式,但是不知道怎么换成读SQL的。。
<select>
<option>-请选择-</option>
<option>1111111</option>
<option>2222222</option>
<option>3333333</option>
</select>
...全文
请发表友善的回复…
发表回复
i08kingdom 2018-12-12
- 打赏
- 举报
主要取决于你是webform还是mvc
Hello World, 2018-12-04
- 打赏
- 举报
你这个如果用EasyUI来做的话就简单了,指定class为easyui-combobox,url为数据提供的URL,例如:
或者用VUE、Konckout.js等都好做的;后台只管返回数据,前端要怎么显示就怎么显示
<input type="text" class="easyui-combobox" data-options="url:'数据源地址',其他选项......" />
或者用VUE、Konckout.js等都好做的;后台只管返回数据,前端要怎么显示就怎么显示
娃都会打酱油了 2018-12-04
- 打赏
- 举报
如果你的数据量不够大(比如几千以内),那么可以在后台一次性读取后,传到前端,前端通过带筛选的插件进行前端查询筛选,否则就是在输入后延迟几百毫秒后通过ajax请求服务器进行查询,将查询结果返回前端绑定显示
兔子家族-二哥 2018-12-04
- 打赏
- 举报
上面的更直观下面的简单
也可以 :
<input id="CaseStatus" class="mini-combobox" url="你的方法路径" name="CaseStatus" requiredErrorText="状态不能为空"
valueField="id" textField="text" width="70%" required="true" value="" />
或:
<input id="CaseStatus" class="mini-combobox" url="" Data="[ { id: "1", text: "a" }]" name="CaseStatus" requiredErrorText="状态不能为空"
valueField="id" textField="text" width="70%" required="true" value="" />
也可以 :
<input id="CaseStatus" class="mini-combobox" url="你的方法路径" name="CaseStatus" requiredErrorText="状态不能为空"
valueField="id" textField="text" width="70%" required="true" value="" />
或:
<input id="CaseStatus" class="mini-combobox" url="" Data="[ { id: "1", text: "a" }]" name="CaseStatus" requiredErrorText="状态不能为空"
valueField="id" textField="text" width="70%" required="true" value="" />
兔子家族-二哥 2018-12-04
- 打赏
- 举报
一看就是原始的MVC 没用前端框架吧?找个前端框架用用就解决了啊,早用早好的事情。
你后端查出来数据源直接绑定就好了,都是通过Jason绑定挺方便。比如:miniUI
<input id="CaseStatus" class="mini-combobox" url="" name="CaseStatus" requiredErrorText="状态不能为空"
valueField="id" textField="text" width="70%" required="true" value="" />
var str= [
{ id: "1", text: "a" }
];
mini.get("CaseStatus").setData(str);
你后端查出来数据源直接绑定就好了,都是通过Jason绑定挺方便。比如:miniUI
<input id="CaseStatus" class="mini-combobox" url="" name="CaseStatus" requiredErrorText="状态不能为空"
valueField="id" textField="text" width="70%" required="true" value="" />
var str= [
{ id: "1", text: "a" }
];
mini.get("CaseStatus").setData(str);
EdsionWang 2018-12-03
- 打赏
- 举报
如果后端程序是C#的可以实现您说的功能么~[/quote]
和你后端什么语言没关系。你要搞明白web开发的原理,前后端怎么数据交互的。找本asp.net mvc 的书看看再来动手吧
qq_38399333 2018-11-30
- 打赏
- 举报
看到您说的以后,茅塞顿开,然后找到了相关的代码后重新写了一个,您看下是否可用?然后如果是正确的,那么在前端怎么使用VIEW来显示我所需要的下拉列表?
public static List<Character> GetCharacterList(string ID)
{
List<Character> list = new List<Character>();
string connectionString = ConfigurationManager.ConnectionStrings["Web"].ConnectionString;
SqlConnection sqlConnection = null;
try
{
sqlConnection = new SqlConnection(connectionString);
sqlConnection.Open();
}
catch (Exception)
{
}
SqlDataReader sqlDataReader = null;
try
{
SqlCommand sqlCommand = new SqlCommand();
sqlCommand.CommandText = "Web_GetCharacterList";
sqlCommand.CommandType = CommandType.StoredProcedure;
sqlCommand.Connection = sqlConnection;
sqlCommand.Parameters.Add("@account", SqlDbType.NVarChar, 32).Value = ID;
sqlDataReader = sqlCommand.ExecuteReader();
if (sqlDataReader.HasRows)
{
while (sqlDataReader.Read())
{
Character character = new Character();
character.id = sqlDataReader.GetString(0);
character.characterid = sqlDataReader.GetInt64(1);
character.name = sqlDataReader.GetString(2);
character.deleted = sqlDataReader.GetInt64(3);
if (character.deleted == 0L)
{
list.Add(character);
}
}
}
}
catch (Exception)
{
}
finally
{
sqlDataReader.Close();
sqlConnection.Close();
}
return list;
}
以专业开发人员为伍 2018-11-30
- 打赏
- 举报
所谓“我貌似做不到这么复杂的”这个,其实在于它混合了大量代码,没有按照经验的 MVC 层来设计,在你的需求设计与之不符的时候无法正确地重用 M和C层代码,也无法清晰地说明和简化 V 层设计代码。
实际上编程要处理比这个复杂几十倍的任务,而开发非常轻松方便,比这些混乱的文章简单多了。
以专业开发人员为伍 2018-11-30
- 打赏
- 举报
不要学这类东西。
以专业开发人员为伍 2018-11-30
- 打赏
- 举报
Controller 提供数据给 View 去绑定,而不是产生什么 html 字符串。你这个代码是错误的,函数应该返回 List<string> 代表用户 id 列表,而不是什么 string。
qq_38399333 2018-11-30
- 打赏
- 举报
如果后端程序是C#的可以实现您说的功能么~
qq_38399333 2018-11-30
- 打赏
- 举报
我在这篇文章找到了类似的处理,但是对于C#编程我貌似做不到这么复杂的,能否在我的代码上进行修改达到一样的目的?
https://blog.csdn.net/ChasonLIU/article/details/50067741?locationNum=8&fps=1
https://blog.csdn.net/ChasonLIU/article/details/50067741?locationNum=8&fps=1
EdsionWang 2018-11-30
- 打赏
- 举报
如果你是WebForm程序,可以使用服务器端控件DropDownList,查询出来的数据给DropDownList进行绑定。
如果不用服务器端控件,那么可以用ajax从后端获取json数据。前端来给<select></select>插入option。