C# 如何获取asp.net dropdownlist以允许选择

C# 如何获取asp.net dropdownlist以允许选择,c#,asp.net,C#,Asp.net,我在一个webform上有一个dropdownlist,我通过sql查询填充它,然后我希望能够在下拉列表中选择各个项目,并在表单上的datatable填充文本框中有相应的字段 问题是rowSel返回0,并且下拉列表不允许我选择任何其他项目,它总是会捕捉回列表中的第一个itenm 我想这可能与将autopostback设置为true有关,但如果我将其设置为false,则会导致其他问题,我不确定我是winforms用户,对asp.net非常陌生,还应该尝试什么 protected void

我在一个webform上有一个dropdownlist,我通过sql查询填充它,然后我希望能够在下拉列表中选择各个项目,并在表单上的datatable填充文本框中有相应的字段 问题是rowSel返回0,并且下拉列表不允许我选择任何其他项目,它总是会捕捉回列表中的第一个itenm

我想这可能与将autopostback设置为true有关,但如果我将其设置为false,则会导致其他问题,我不确定我是winforms用户,对asp.net非常陌生,还应该尝试什么

    protected void ddClients_SelectedIndexChanged(object sender, EventArgs e)
    {
        int rowSel = ddClients.SelectedIndex;
        txtClient.Text = dsShow.Rows[rowSel["ClientsTableFieldA"].ToString();
    }
它应该允许我从下拉列表中选择一个值,然后用数据表中的字段填充一些文本框。

您可以尝试:

 protected void ddClients_SelectedIndexChanged(object sender, EventArgs e)
    {
        txtClient.Text = ddClients.SelectedItem.Value.ToString();
    }
正如B.Seberle所建议的那样 DDL项具有字段值和文本,因此它取决于如何将DDL绑定到SQL数据源

在txtClient.Text=ddClients.SelectedItem.Text上放置断点,查看项目列表是否为空

这应该不是必需的,但是如果(!page.IsPostback),您可以强制加载页面中的ddClient.databind()


但是,ddClients\u SelectedIndexChanged只会在回发时触发。

rowSel[“ClientsTableFieldA”]
…这是什么意思
rowSel
是代码中的一个简单整数。这不会导致错误吗?ClientsTableFeildA是datatable中一个字段的名称,rowSel是行号,这部分似乎有效,唯一的问题是我只能选择下拉列表中的第一条记录。也许你上面显示的不太正确,因为缺少括号会导致语法错误,至少Hanks ADyson没有注意到这一点,我想我已经解决了,要做我想做的事情,我不得不从数据库中重新加载它,令人恼火,但这就是我能想到的。好吧,我解决了部分问题,需要(!Page.IsPostback)在页面加载中现在它允许我选择不同的项目,但是现在它不会读取SelectedIndexChanged中的数据表,因此我可以获取其他值并将它们放入文本框中。有什么想法吗?谢谢!!!
protected void ddClients_SelectedIndexChanged(object sender, EventArgs e)
{
    txtClient.Text = ddClients.SelectedItem.Text;
}