2016-01-21 45 views
0

我有一个主页DropDownList和2个其他页面。使其选择打印报告的设置。
问题是 - 我在这些DropDownList s中使用DataSource s,但它们没有空值。我应该在哪里为DropDownList添加一个新的空值以正确工作?
有我的代码(在评论是,我需要添加的事情)我应该在哪里为DropDownList添加新的ListItem

protected void ddlMain_Load(object sender, EventArgs e) 
{ 
    switch (ddlMain.SelectedValue) 
    { 
     case "1": 
      dFirst.Visible = true; 
      dSecond.Visible = false; 
      break; 
     case "2": 
      dFirst.Visible = false; 
      dSecond.Visible = true; 
      break; 
} 

<div> 
<asp:DropDownList ID="ddlMain" runat="server" AutoPostBack="true" OnLoad="ddlMain_Load"> 
    <asp:ListItem Text="1" Value="1"></asp:ListItem> 
    <asp:ListItem Text="2 " Value="2"></asp:ListItem> 
</asp:DropDownList>    
</div> 

<div runat="server" id="dFirst" visible="false"> 
    <asp:DropDownList ID="ddlFirst" runat="server" DataSourceID="sdsFirst" 
     DataTextField="name" DataValueField="id" OnLoad="ddlFirst_Load"> 
    </asp:DropDownList> 
    <asp:SqlDataSource ID="sdsFirst" runat="server" 
     ConnectionString="<%$ ConnectionStrings:conStr %>"> 
    </asp:SqlDataSource> 
</div> 
//ddlFirst.Items.Add(new ListItem("--Select--", "-1")); 

我试图OnLoad次要元素,OnLoad主要DropDownListPage_Load。它们不适合我,因为新页面ListItem在页面首次加载时不会显示,或在页面刷新时添加超过1次。

+0

什么是空值? – Imad

+0

对不起,我更新了我的问题!示例是注释在代码部分。 –

回答

1

在页面加载中使用插入方法。

ddlAcademicYear.Items.Insert(0, new ListItem("-- Select --", "-1")); 

0是您想插入的位置。

+0

谢谢,但它只适用于一些Button_Click事件,但不适用于Page_Load –

0

optionlabel添加到您的下拉列表中,并指定文本“--Select--”。您的下拉列表现在应该具有所需的默认值。

+0

正确的DropDownList tegs?我不能,因为那里我可以放置ListItems。 –

+0

试着把它放在DDLFirst OnLoad后 –

+0

不幸的是,没有帮助 –