Programming

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

procodes 2020. 7. 5. 21:39
반응형

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


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

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

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

편집 ~ 나는 Generig List에 바인딩하고 있는데, 이것이 범인이 될 수 있습니까?


데이터 바인드 후 :

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

다음 AppendDataBoundItems=true을 쉽게 추가 하는 사용할 수 있습니다.

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

데이터 바인딩은 빈 목록 항목을 추가 한 후에 발생하며 이미 존재하는 항목을 대체하므로 컨트롤러에서 목록의 시작 부분에 빈 항목을 추가하거나 데이터 바인딩 후 추가해야합니다.

편집하다:

ASP.Net 2.0에서 이것을 빠르게 검색 한 후에는 데이터 바인딩 된 항목을 추가하도록 설정할 수있는 "AppendDataBoundItems"true 속성이 있습니다.

자세한 내용은

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처럼 트릭은 "AppendDataBoundItems"속성에 있습니다.

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;
    }
}

감사합니다 "Whisk"


데이터 바인딩을 수행 한 후 다음을 추가하십시오.

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

반응형