【发布时间】:2016-10-11 13:07:06
【问题描述】:
我正在尝试使用 C# 代码从 html select 中选择一个选项,此输入的选项是通过 AJAX 调用创建的,页面加载后我的选择是这样的:
<select id="SelectId" runat="server">
<option value="1">1</option>
<option value="2">2</option>
</select>
在我的 C# 代码中,我有以下代码:
ListItem li = SelectId.Items.FindByValue("1");
if (li != null)
li.Selected = true;
else
Response.Write("mm");
但我总是得到 response.write("mm"),我做错了什么?也许是为了ajax调用?那当我执行我的 C# 代码时,我的选择没有任何选项?
编辑:
使用手动创建的选项进行测试并且工作正常,所以问题是我如何创建选择选项的方式,那么我该如何解决这个问题?我需要在页面加载时自动执行我的 C# 代码。
编辑 2:
AJAX 代码:
success: function (data) {
var options = "";
var myData = JSON.parse(data.d);
for (var i = 0; i < myData.length; i++) {
var id = myData[i].Id;
options += '<option value ="' + id + '">';
options += id;
options += '</option>';
}
$('#SelectId').html(options);
}
【问题讨论】:
-
您能分享一下您是如何创建选择选项的吗?因为,正如你所说,这可能就是问题所在。如果您在客户端创建选项,那么服务器端代码将不会在页面加载时知道它们。
-
我认为您应该发布更多代码。您是否在 Ajax UpdatePanel 中使用了 AsynchPostBackTrigger?这可能会有所帮助:asp.net/web-forms/overview/older-versions-getting-started/….. 例如,请查看清单 3。
-
@sam2929 准备好了,我添加了 ajax 代码。
-
动态控件可能很痛苦。只需使用常规方法即可快速而肮脏:
Request.Form["SelectId"].