programing

Asp.net - 드롭다운 목록 맨 위에 빈 항목 추가

powerit 2023. 4. 28. 21:45
반응형

Asp.net - 드롭다운 목록 맨 위에 빈 항목 추가

드롭다운에 빈 항목이 먼저 표시되지 않는 이유는 무엇입니까?이것이 제가 가진 것입니다.

drpList.Items.Add(New ListItem("", ""))

With drpList
    .DataSource = myController.GetList(userid)
    .DataTextField = "Name"
    .DataValueField = "ID"
    .DataBind()
End With

편집 ~ 제가 제네릭 리스트에 속박되어 있는데, 이게 범인일 수도 있나요?

데이터 바인딩 후:

drpList.Items.Insert(0, new ListItem(String.Empty, String.Empty));
drpList.SelectedIndex = 0;

사용할 수 있습니다.AppendDataBoundItems=true쉽게 추가할 수 있는 항목:

<asp:DropDownList ID="drpList" AppendDataBoundItems="true" runat="server">
    <asp:ListItem Text="" Value="" />
</asp:DropDownList>

데이터 바인딩은 빈 목록 항목을 추가한 후에 수행되며, 이미 있는 항목을 대체합니다. 컨트롤러에서 목록의 시작 부분에 빈 항목을 추가하거나 데이터 바인딩 후에 추가해야 합니다.

편집:

ASP 기준으로 이를 빠르게 검색한 후.Net 2.0에는 데이터 바인딩 항목을 추가하도록 설정할 수 있는 "AdpendDataBoundItems" 참 속성이 있습니다.

자세한 내용은 을 참조하십시오.

http://imar.spaanjaars.com/QuickDocId.aspx?quickdoc=281 또는

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.appenddatabounditems.aspx

저는 빈 항목을 먼저 삽입한 후에 당신이 해왔던 것처럼 데이터를 바인딩하는 것이 더 좋은 방법이라고 생각합니다.그러나 설정해야 합니다.AppendDataBoundItems목록 컨트롤의 속성입니다.

다음 방법을 사용하여 모든 데이터 소스를 목록 컨트롤에 바인딩합니다.

public static void BindList(ListControl list, IEnumerable datasource, string valueName, string textName)
{
    list.Items.Clear();
    list.Items.Add("", "");
    list.AppendDataBoundItems = true;
    list.DataValueField = valueName;
    list.DataTextField = textName;
    list.DataSource = datasource;
    list.DataBind();
}

"Whisk" Said와 마찬가지로 "AdpendDataBoundItems" 속성이 트릭입니다.

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        DropDownList1.AppendDataBoundItems = true;
        DropDownList1.Items.Insert(0, new ListItem(String.Empty, String.Empty));
        DropDownList1.SelectedIndex = 0;
    }
}

"휘스크" 감사합니다.

데이터 바인딩을 수행한 다음 다음을 추가합니다.

Dim liFirst As New ListItem("", "")
drpList.Items.Insert(0, liFirst)

빈 항목을 추가한 다음 목록을 비우는 데이터 바인딩입니다. 데이터 바인딩 후 빈 항목을 삽입해 보십시오.

간단하죠.

드디어

ddlProducer.Items.Insert(0, "");

ddlCategory.DataSource = ds;
ddlCategory.DataTextField = "CatName";
ddlCategory.DataValueField = "CatID";

캐치 1:

ddlCategory.Items.Add(new ListItem("--please select--", "-1"));
ddlCategory.AppendDataBoundItems = true;
ddlCategory.SelectedIndex = -1;

ddlCategory.DataBind();

캐치 2:

ddlCategory.Items.Insert(0, new ListItem("-- please select --", "0"));

(정상 테스트)

빈 셀렉트와 내용이 포함된 셀렉트를 결합할 수도 있습니다.

select '' value, '' name
union
select value, name from mytable

언급URL : https://stackoverflow.com/questions/267064/asp-net-add-blank-item-at-top-of-dropdownlist

반응형