2012-05-28 112 views
0

我有一个SQL数据库,我在C#中使用ASP.net。基于用户选择获取记录

我有一个下拉框,其选择项数据绑定到数据库中的表。基本上,我需要获取所选记录的ID。

不太确定要做到这一点的最佳方法是什么。我只能想到通过使用下拉框公开的SelectedIndex属性来选择第n行。

ID是uniqueidentifier类型。请注意,由于记录可能被删除,所以增量INT的ID不会被使用。

回答

1

您是否指定在DropDown的SelectedItem被更改时将返回哪个字段值?您应该指定字段名称,以确保在您的DropDown框中选择一个项目时返回指定的字段值。尝试这样的事情 -

cmbList.DataSource = Your Table or DataSet; 
cmbList.DataMember = "ColumnName to be displayed in the DropDownList"; 
cmbList.DataTextField = "ColumnName to be displayed in the DropDownList"; 
cmbList.DataValueField = "ColumnName to be returned as SelectedValue in the DropDownList"; 
cmbList.DataBind(); 

然后使用DropDownList.SelectedValue来获得所需的字段值作为DropDown的选择结果。希望这可以帮助。

+0

辉煌。我已将数据源更改为包含ID字段和我的标记以包含DataValueField。 – morph

1

dropdowlist.SelectedValue会给你在下拉列表中选择的项目。 dropdowlist.SelectedItem.Text将为您提供在下拉列表中选择的项目的文本。

protected void dropdowlist_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    int ID = dropdowlist.SelectedValue; 
    ---PUT YOUR SELECT CODE HERE---- 
} 

是否记得在.aspx页面中将dropdowlist Autopostback属性设置为true。

<asp:DropDownList ID="dropdowlist" runat="server" AutoPostBack="True" ></asp:DropDownList> 
+0

@Harreh只记得在绑定数据时,将DropDownList Item的选定值设置为数据的唯一行ID。 –

+0

SelectedValue属性仅返回在下拉列表中使用的文本。这对我来说并不奇怪,因为它连接到数据源的方式。 – morph