【问题标题】:Drop Down Control Selected Index change event下拉控件选定索引更改事件
【发布时间】:2014-12-16 07:28:17
【问题描述】:

在我的 asp.net 中的 webfrom 中,我有一个网格视图、一个按钮、一个文本框和一个下拉列表。 我有一个这样的方法可以调用并选择网格视图中的数据。

public void fillGridByAuthor(string searchKey)
{
    GVDetails.DataSource = new ViewAllBKByAuthorOP().searchAuthorByAUNM(searchKey);
    GVDetails.DataBind();
}

这是我的业务层方法。

 public DataTable searchAuthorByAUNM(string searchKey)
{
    string query2 = "EXEC SelectBooksDTByAuthor'" + searchKey + "'";
    return new DataAccessLayer().executeTable(query2);
}

我在下拉列表中的表单中调用 fillGridByAuthor 方法,这样选择索引更改事件。

 protected void DDAuthor_SelectedIndexChanged(object sender, EventArgs e)
 {
    fillGridByAuthor(DDAuthor.Text);

 }

在按钮点击事件中像这样

 protected void btnSearch_Click(object sender, EventArgs e)
 {
     fillGridByAuthor(txtAuName.Text);

 }

单击按钮时它工作正常。尽管我在下拉列表中选择了相同的项目,但它并没有给我相同的输出。 这里有什么不正确的?

【问题讨论】:

  • 你调试过代码并检查过它实际传递的值吗?

标签: c# asp.net dropdownbox


【解决方案1】:

来自MSDN

Text 属性获取和设置与SelectedValue 相同的值 财产。 SelectedValue 属性通常用于 确定ListControl 控件中选定项的值。 如果没有选择任何项目,则返回一个空字符串 ("")。

所以Text 属性返回Value 而不是当前选定项的Text 属性。请改用SelectedItem.Text

fillGridByAuthor(DDAuthor.SelectedItem.Text);

【讨论】:

  • 感谢您的回答,但是设置 Drop downlist 的 autopost back 属性是有效的。
  • @Sahil:那么您还没有相应地设置DataTextFieldDataValueField,是吗?但是,您应该开始使用调试器,因为它是查找错误的强大工具。
  • 非常感谢您的帮助,我刚刚阅读了您提到的内容。再次感谢您的帮助。
【解决方案2】:

只需将下拉列表的 AutoPostBack 属性设置为 true,它就会像魅力一样工作。

【讨论】:

    【解决方案3】:

    尝试将 autopostback = true 添加到您的下拉列表中。它可能会有所帮助

    而且,你应该这样做:

    fillGridByAuthor(DDAuthor.SelectedValue);
    

    编辑

    什么 Tim Schmelter 可能更好,因为你想要这样的文本:

    fillGridByAuthor(DDAuthor.SelectedItem.Text);
    

    【讨论】:

    • 感谢您的回答,但是设置 Drop downlist 的 autopost back 属性是有效的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    相关资源
    最近更新 更多