【问题标题】:Select option from C#从 C# 中选择选项
【发布时间】: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);    
}

【问题讨论】:

  • 检查是否有帮助:stackoverflow.com/a/4317441/1559611
  • 您能分享一下您是如何创建选择选项的吗?因为,正如你所说,这可能就是问题所在。如果您在客户端创建选项,那么服务器端代码将不会在页面加载时知道它们。
  • 我认为您应该发布更多代码。您是否在 Ajax UpdatePanel 中使用了 AsynchPostBackTrigger?这可能会有所帮助:asp.net/web-forms/overview/older-versions-getting-started/….. 例如,请查看清单 3。
  • @sam2929 准备好了,我添加了 ajax 代码。
  • 动态控件可能很痛苦。只需使用常规方法即可快速而肮脏:Request.Form["SelectId"].

标签: c# asp.net


【解决方案1】:

出于个人原因,我需要保存选定的值,因此我无法使用 C# 执行此操作,我使用 JavaScriptsessionStorage,因此我解决此问题的代码如下:

function saveSelect() {
   $('#SelectId').change(function () {
      var option = $('#SelectId').val();
      localStorage.SelecteOption = option;
   });
}

function loadSelect() {
   var option = localStorage.SelecteOption;

   if (option != null)
       $('#SelectId').val(option).change();
}

我只是在填充选择后调用这个函数。

Ajax Call code....

$('#id').html(opciones);
saveSelect();
loadSelect();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-16
    • 2015-07-24
    • 1970-01-01
    • 2015-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多