如何在页面加载时在下拉列表中设置默认值 - 在asp.net c#中?

时间:2015-01-02 09:01:20

标签: c# asp.net

我在aspx页面中创建了两个下拉列表

                  <div class="row-form">
                <div class="span3">
                    Line of Authority&nbsp;<span class="RequiredField">* </span>:
                </div>
                <div class="span3">
                 <asp:DropDownList ID="drpLineOfAuthority" AutoPostBack="true" onselectedindexchanged="drpJurisdiction_SelectedIndexChanged" runat="server"></asp:DropDownList>
                <!-- <tpLineOfAuthority:ctLineOfAuthority ID ="chkLineOfAuthority" runat="server" /> -->
                </div>
                    <div class="clear">
                    </div>
                </div>

              <div  class="row-form">
                <div class="span3">
                    State&nbsp;<span class="RequiredField">* </span>:
                </div>

                <div class="span3">
                      <asp:DropDownList ID="drpJurisdiction" AutoPostBack="true"        onselectedindexchanged="drpJurisdiction_SelectedIndexChanged" runat="server"></asp:DropDownList>
             </div>

在aspx.cs文件中

                protected override void Page_Load(object sender, EventArgs e)
                {
                 if (!IsPostBack)
                 {
                 if (urlAction != URLAction.update)
                 {
                  FillDropDown();
                 }
                 }
             }

       private void FillDropDown()
       {
        JurisdictionBL jbl;
        jbl = new JurisdictionBL(0);
        DataSet ds = new DataSet();
        jbl.FetchAll(ds);
        ...
        ...
         if (urlAction != URLAction.update)
        {
            drpJurisdiction.SelectedValue = "--Please select any state--";
            drpLineOfAuthority.SelectedValue = "--Please select LOA--";
        }
    }

请注意,FillDropDown()函数正在填充带有值的下拉列表项,这些值是从数据库中检索的。
现在问题是上面的代码没有设置下拉列表的默认值! 请帮帮我!!!

3 个答案:

答案 0 :(得分:1)

尝试这样,它会起作用

drpJurisdiction.Items.Insert(0, new ListItem("--Please select any state--", "0"));

答案 1 :(得分:0)

尝试浏览AppendDataBoundItems属性。

<asp:DropDownList ID="drpJurisdiction" runat="server" AppendDataBoundItems="true">
    <asp:ListItem Text="--Please select any state--" Value="" />   
</asp:DropDownList>

确保将AppendDataBoundItems设置为true,否则在绑定代码中的数据时它将被清除。

可替换地,

<asp:DropDownList runat="server" ID="drpJurisdiction" ondatabound="OndrpJurisdictionDataBound"></asp:DropDownList>

然后在你的代码背后:

protected void OndrpJurisdictionDataBound(object sender, EventArgs e)
{
    drpJurisdiction.Items.Insert(0, new ListItem("--Please select any state--", ""));
}

答案 2 :(得分:0)

因为数据库中的列表不包含字符串“ - 请选择任何状态 - ”和“ - 请选择LOA--”,请确保源数据表中有默认值。

例如,如果数据表DT具有来自数据库的重试值,则可以在运行时将默认值添加为新行

    DataRow DR = DT.NewRow();
    DR[0] = "--Please select LOA--";
    DT.Rows.InsertAt(DR, 0);