C# 下拉控件选择的索引更改事件

C# 下拉控件选择的索引更改事件,c#,asp.net,dropdownbox,C#,Asp.net,Dropdownbox,在asp.net的webfrom中,我有一个网格视图、一个按钮、一个文本框和一个下拉列表。 我有这样一个方法来调用并选择网格视图中的数据 public void fillGridByAuthor(string searchKey) { GVDetails.DataSource = new ViewAllBKByAuthorOP().searchAuthorByAUNM(searchKey); GVDetails.DataBind(); } 这是我的业务层方法 public D

在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);
}
我在drop downlist selected index change事件中调用表单中的fillGridByAuthor方法,如下所示

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

 }
在按钮点击事件中,如下所示

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

 }
单击按钮时,工作正常。虽然我在下拉列表中选择了相同的项目,但它不会给我相同的输出。
这里有什么不对

尝试将autopostback=true添加到dropdownlist。这可能会有帮助

你应该这样做:

fillGridByAuthor(DDAuthor.SelectedValue);
编辑

Tim Schmelter可能更好,因为您希望文本:

fillGridByAuthor(DDAuthor.SelectedItem.Text);

只要将dropdownlist的AutoPostBack属性设置为true,它就会像一个符咒一样工作。

来自:

Text
属性获取并设置与
SelectedValue
房地产确实如此。
SelectedValue
属性通常用于 确定
ListControl
控件中所选项目的值。 如果未选择任何项目,则返回空字符串(“”)

因此,
Text
属性返回当前所选项目的
值,而不是
Text
属性。改用
SelectedItem.Text

fillGridByAuthor(DDAuthor.SelectedItem.Text);

你调试过代码并检查了它实际传递的值了吗?谢谢你的回答,但是设置Drop downlist的autopost back属性有效。谢谢你的回答,但是设置Drop downlist的autopost back属性有效。@Sahil:那么你没有相应地设置and
DataValueField
,是吗?不过,您应该开始使用调试器,因为它是查找bug的强大工具。非常感谢您的帮助,我刚刚读到了您提到的内容。再次感谢你的帮助。