1

我正在使用选择语句绑定位置下拉列表

Select location_id, location_name,businessid from inventory.tbl_location order by location_name

我想将第一个元素作为“选择位置”。现在我正在获取所有位置。如何在使用sql语句进行数据绑定的asp.net页面的下拉列表中将初始值设置为Select ?

In the aspx page :

        <asp:DropDownList ID="ddlAllLocations" runat="server" DataSourceID="SqlDataSourceBusinessLocations"
                            DataTextField="Location_Name" DataValueField="Location_ID" AutoPostBack="True">
                        </asp:DropDownList>

 <asp:SqlDataSource ID="SqlDataSourceBusinessLocations" runat="server" ConnectionString="<xxxxxx>"
            ProviderName="<%$ zzzzz %>" SelectCommand="Select location_id, location_name,businessid from inventory.tbl_location order by location_name" FilterExpression="businessid in ({0})">
            <FilterParameters>
                <asp:SessionParameter DefaultValue="0" Name="BUID" SessionField="BusinessUnitIDs" />
            </FilterParameters>
        </asp:SqlDataSource>

我按照 page_load 事件中的建议添加了代码,这是另一个问题,每次将选择位置添加到列表项

   Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If IsPostBack() Then
            lblError.Text = ""
            ddlAllLocations.Items.Insert(0, New ListItem("Select location"))
        End If


    End Sub
4

2 回答 2

2

试试这个:

<asp:DropDownList ID="ddlAllLocations" runat="server"
       DataSourceID="SqlDataSourceBusinessLocations"
       DataTextField="Location_Name" 
       DataValueField="Location_ID" 
       AutoPostBack="True"
       AppendDataBoundItems="True">
   <asp:ListItem value="" selected="True">
      Select
   </asp:ListItem>
</asp:DropDownList>

不要忘记AppendDataBoundItems属性。在更新面板中使用它时要小心:每次更新都会重新附加所有项目,您最终会得到重复项。在这种情况下,您可以通过禁用控件的 ViewState 来修复它。

于 2013-04-02T21:49:43.633 回答
1

不确定您如何进行数据绑定,但我希望您在代码隐藏中进行...

在这种情况下,它非常简单:

mydroplist.DataSource = someSource;
mydroplist.DataBind();
mydroplist.Items.Insert(0, new ListItem("Select location"));

根据您的编辑进行编辑:
在您的 UI 中使用 SQL 不是一个好主意。这是一个非常糟糕的设计。对适当的编程架构、如何分离层等进行一些研究。然后您将在代码隐藏中进行数据绑定,我的示例将为您提供帮助。

如果你坚持使用你的做事方式,你可以简单地在下拉列表数据绑定时连接事件并添加这段代码(当然绑定部分除外)

于 2013-04-02T21:15:37.440 回答