我是一名新的ASP.NET开发人员,我正在尝试学习Linq-To-Entities。我试图将DropDownList绑定到Linq语句,以检索状态实体中的状态列表。一切都很好。但是,我现在正在尝试向DropDownList添加“选择”选项,但它不适用于我。 你能告诉我如何解决这个问题吗?
ASP.NET代码:
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"
OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
代码隐藏:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DropDownList1.Items.Add(new ListItem("Select", "0", true));
bindStatusDropDownList();
}
}
private void bindStatusDropDownList()
{
Status status = new Status();
DropDownList1.DataSource = status.getData();
DropDownList1.DataValueField = "ID";
DropDownList1.DataTextField = "Description";
DropDownList1.DataBind();
}
的更新: 的
我也尝试在DropDownList的标记集中做,但它对我来说也不起作用
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"
OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem Selected="True" Value="0" Text="Select"></asp:ListItem>
</asp:DropDownList>
答案 0 :(得分:21)
它不起作用的原因是因为您要将一个项目添加到列表中,然后使用新的DataSource
覆盖整个列表,这将清除并重新填充您的列表,丢失第一个手动添加的项目。
所以,你需要反过来这样做:
Status status = new Status();
DropDownList1.DataSource = status.getData();
DropDownList1.DataValueField = "ID";
DropDownList1.DataTextField = "Description";
DropDownList1.DataBind();
// Then add your first item
DropDownList1.Items.Insert(0, "Select");
答案 1 :(得分:9)
虽然这是一个相当古老的问题,但另一种方法是更改 AppendDataBoundItems 属性。所以代码将是:
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"
OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"
AppendDataBoundItems="True">
<asp:ListItem Selected="True" Value="0" Text="Select"></asp:ListItem>
</asp:DropDownList>
答案 2 :(得分:1)
移动DropDownList1.Items.Add(new ListItem(“Select”,“0”,true)); 在bindStatusDropDownList();
之后这样:
if (!IsPostBack)
{
bindStatusDropDownList(); //first create structure
DropDownList1.Items.Add(new ListItem("Select", "0", true)); // after add item
}
答案 3 :(得分:1)
如果你做了&#34;添加&#34;它会将它添加到列表的底部。你需要做一个&#34;插入&#34;如果您希望将项目添加到列表顶部。
答案 4 :(得分:1)
我尝试使用以下代码。它为我工作很好
let string = NSMutableAttributedString(string: "1000.12")
string.addAttribute(NSFontAttributeName,value: UIFont.systemFont(ofSize: 25.0), range: NSRange(location: 0, length: 4))
string.addAttribute(NSFontAttributeName,value: UIFont.systemFont(ofSize: 10.0), range: NSRange(location: 5, length: 2))
答案 5 :(得分:0)
Private Sub YourWebPage_PreRenderComplete(sender As Object, e As EventArgs) Handles Me.PreRenderComplete
If Not IsPostBack Then
DropDownList1.Items.Insert(0, "Select")
End If
End Sub
答案 6 :(得分:0)
如果要使第一项变为不可选择状态,请尝试以下操作:
DropDownList1.Items.Insert(0, new ListItem("Select", "-1"));
DropDownList1.Items[0].Attributes.Add("disabled", "disabled");