【问题标题】:How to save the drop down list selected index in asp.net?如何在asp.net中保存下拉列表选定的索引?
【发布时间】:2014-12-08 07:07:06
【问题描述】:

我希望在单击按钮后保存我选择的索引,以便将该数字存储到我的数据库中。我的下拉列表在下面的评论中。

使用查询填充下拉列表。到目前为止,它的作用是在单击按钮后存储第一个索引(即 0),即使我想保存另一个索引也是如此。

我做了一些研究,到目前为止我无法解决它,希望有人能帮助我。

下拉列表代码:-

<asp:DropDownList ID="ddlCategory" runat="server" Height="25px" Width="428px" Font-Size="Large"> </asp:DropDownList> 

这是我填写下拉列表的方式

ClsUtil clsutil = new ClsUtil(); 
DataSet ds = clsutilerias.FillDDL(Category); 
ddlCategory.DataTextField = ds.Tables[0].Columns["Name"].ToString(); 
ddlCategory.DataValueField = ds.Tables[0].Columns["Category_ID"].ToString();
ddlCategory.DataSource = ds.Tables[0]; 
ddlCategory.DataBind(); 

【问题讨论】:

  • 请写代码..
  • @appleduardo:请出示您的 jquery 代码。
  • 这是我如何填写下拉列表 ClsUtil clsutil = new ClsUtil();数据集 ds = clsutilerias.llenarDDL(Category); ddlCategory.DataTextField = ds.Tables[0].Columns["Name"].ToString(); ddlCategory.DataValueField = ds.Tables[0].Columns["Category_ID"].ToString(); ddlCategory.DataSource = ds.Tables[0]; ddlCategory.DataBind();
  • @appleduardo:你能编辑你的问题并编写你的代码吗?

标签: c# asp.net drop-down-menu


【解决方案1】:

DropDownList 具有属性。您需要正确设置SelectedIndexSelectedItemSelectedValue(并且在与您进行绑定等相关的正确事件中)。

编辑:也许您更新了您的问题,或者我误解了,但无论哪种方式,现在您似乎都不想设置 SelectedIndexperhaps as就像 get SelectedIndex。尽管如此,如果您阅读文档并查看链接中提供的示例,您应该有足够的信息知道该怎么做。

基本上,当数据回传到服务器时,将选择客户端上&lt;select&gt; 中的&lt;option&gt; 元素之一(HTML 代码)。如果您的&lt;asp:DropDownList&gt;AutoPostBack="True",您可以在OnSelectedIndexChanged 事件中进行回调,但也有其他方法,有或没有自动回发。 (您实际上并不需要视图状态,甚至根本不需要&lt;asp:DropDownList&gt;,但可以通过以任何适合您的需要或偏好的方式提交表单数据来触发 POST,然后读取您对服务器感兴趣的任何值 -边。)

您似乎在检查Page 中的IsPostback 时找到了解决方案,如果值为true,则不重新填充列表。那挺好的。 如果您不需要每次呈现页面时都进行数据绑定(即使在 POST 之后),这是一个可行且常见的解决方案。

当然,另一种选择是在在您进行数据绑定之前发生的任何事件中读取发布的数据。如果您不喜欢让 ASP.NET 为你。

【讨论】:

【解决方案2】:

当您单击按钮时,整个页面都在刷新,这就是您始终获得第一个索引的原因 最好的解决办法是:

if(IsPostBack == false)
{
//Save your data code here
}

您还有其他棘手的解决方案: 将 dropboxmenu 放在更新面板控件中

【讨论】:

    【解决方案3】:

    在将数据源绑定到组合时,请提及组合框的 DataMemberDataValue 属性,以便从组合中选择元素得到 selectedValueDataValue

    【讨论】:

      【解决方案4】:

      好吧,我已经解决了我的问题,我的问题是当我单击按钮时,pageLoad 方法再次执行,并且我有代码来填充我的下拉列表。所以我只是添加了:

      if(!IsPostBack)
      {
       //here goes the code to fill the Drop down list
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多