我在很多文件中都有很多下拉列表。我正在尝试编写一个函数,只在每次页面加载时显示“---请选择 - ”作为默认项目 - 在回发后无法选择,因此添加到数据库中,也不会添加到列表中作为新物品,。我不知道如何实现这一目标。相反,我使用插入(我知道是错的),但我不知道哪种方法是正确的。请指教
ASPX
<asp:DropDownList ID="DropDownListVType" runat="server" DataSourceID="SqlDataSourceVesselType"
DataTextField="Vessel_Type" DataValueField="VType_ID" Width="160px" AutoPostBack="False"
CausesValidation="True" OnDataBound="ddl_DataBound">
CS ....
PublicFunctions pubvar = new PublicFunctions();
protected void ddl_DataBound(object sender, System.EventArgs e)
{
pubvar.ddl_DB(DropDownListVType);
}
公共职能CS
public void ddl_DB(DropDownList d)
{
try
{
d.Items.Insert(0, new ListItem("--- Please Select ---", String.Empty));
}
catch (Exception ex)
{
Console.WriteLine("{0} Exception caught.", ex);
}
}
更新: 公共职能CS
public object checkNull (Control c)
{
try{
if (c.GetType()==typeof(TextBox))
{
TextBox tb = c as TextBox;
if (!string.IsNullOrEmpty(tb.Text))
{
return tb.Text;
}
}
if(c.GetType()==typeof(DropDownList))
{
DropDownList dl = c as DropDownList;
if ((!string.IsNullOrEmpty(c.??
{
return c.???
}
}
}
catch (Exception ex)
{
Console.WriteLine("{0} Exception caught.", ex);
}
return (DBNull.Value);
在PAGE CS中打电话
command.Parameters.AddWithValue("@VType_ID", DropDownListVType.SelectedValue);
答案 0 :(得分:1)
好吧......当您将默认选项插入索引0时,您可以执行以下操作:
if(!d.Items[0].Text.equals("--- Please Select ---"))
d.Items.Insert("--- Please Select ---");
其他什么都不做。或者@Plue提到:
if(!Page.IsPostBack)
d.Items.Insert(0, new ListItem("--- Please Select ---", String.Empty));
另外,您应该将"--- Please Select ---"
移动到常量。
private const string DEFAULTOPTION = "--- Please Select ---";
答案 1 :(得分:1)
尝试将此添加到您的aspx:
<asp:DropDownList ... AppendDataBoundItems="true">
<asp:ListItem Text="-Choose car-" disabled="true"/>
</asp:DropDownList>
默认情况下会显示 - 选择汽车 - 。然后,当用户单击ddl时,将无法选择此选项。
不要在代码中插入任何内容。
修改强>
如果您使用每个回发进行绑定,请尝试将其添加到您的ddl_DB代码中:
d.Items.Insert(0, new ListItem("--- Please Select ---", String.Empty));
d.Items[0].Attributes.Add("disabled", "disabled");
答案 2 :(得分:0)
如果您总是有一个“---请选择---”选项或类似的默认值。您可以随时忽略每个下拉列表中的第一个ListItem。
myDropDown_OnSelectedIndexChanged(...){
if(myDropDown.SelectedIndex != 0){
//Do stuff, make database changes, etc
}
}
如果目标是永远不允许选择此控件,请输入以下内容:
try
{
if(!IsPostBack){
ListItem defaultOption = new ListItem("---Please Select---", String.Empty);
d.Items.Insert(0, defaultOption);
defaultOption.Attributes.Add( "disabled", "disabled" );
}
}
catch (Exception ex)
{
Console.WriteLine("{0} Exception caught.", ex);
}