Asp.net - ড্রপডাউনলিস্টের শীর্ষে ফাঁকা আইটেম যুক্ত করুন


128

ড্রপডাউন কেন প্রথমে আমার ফাঁকা আইটেমটি দেখাচ্ছে না? আমার যা আছে তা এখানে

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

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

সম্পাদনা করুন ~ আমি একটি জেনেরিগ তালিকার জন্য বাধ্য, আমি কি এই অপরাধী হতে পারি?


1
এই সম্পর্কিত stackoverflow.com/questions/983716/...
mcfea

উত্তর:


274

আপনার ডেটাবাইন্ডের পরে:

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

পর্যায়ক্রমে, আপনি একটি তালিকা আইটেম ইনস্ট্যান্ট করতে পারেন, এর নির্বাচিত সম্পত্তিটিকে সত্য হিসাবে সেট করতে পারেন এবং তারপরে এটি উপরের মত ড্রপলিস্টে সন্নিবেশ করতে পারেন।
skia.heliou

3
এটি স্কেলডাটাসোর্স ডেটা নিয়ে কাজ করার জন্য উত্তর খুঁজছেন তাদের সহায়তা করতে পারে আমার ক্ষেত্রে, আমাকে ড্রপলিস্টও যুক্ত করতে হয়েছিল App Page_Load পদ্ধতি বর্তমান ডেটাতে এটা জুড়তে অনুমতি
sabastienfyrre

29

আপনি AppendDataBoundItems=trueসহজে যোগ করতে ব্যবহার করতে পারেন:

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

1
ভিএস <br /> ট্যাগ পছন্দ করে না এবং এটি এটি ছাড়া আমার পক্ষে কাজ করে। এটি এমন একটি পরিষ্কার বিকল্প, কেন জানি এর বেশি ভোট নেই I
টনি এল।

কবজির মতো কাজ করেছেন। ডিজাইন সময় সমাধানের জন্য ধন্যবাদ।
ডেটাগেট রবিন

3
সিলেকড = "সত্য"
Fandango68

24

আপনি আপনার ফাঁকা তালিকা আইটেম যুক্ত করার পরে ডেটাবাইন্ডিংয়ের জায়গাটি ঘটে এবং এটি ইতিমধ্যে যা আছে তা প্রতিস্থাপন করে, আপনাকে আপনার কন্ট্রোলার থেকে তালিকার শুরুতে ফাঁকা আইটেম যুক্ত করতে হবে বা ডেটাবাইন্ডিংয়ের পরে যুক্ত করতে হবে।

সম্পাদনা করুন:

এএসপি.নেট ২.০ হিসাবে এটি দ্রুত গুগল করার পরে একটি "অ্যাপেন্ডডাটাবাউন্ডআইটেমস" প্রকৃত সম্পত্তি রয়েছে যা আপনি সেট করতে পারেন ... ডাটাবাউন্ড আইটেম যুক্ত করুন।

বিশদ জন্য দেখুন

http://imar.spaanjaars.com/QuickDocId.aspx?quickdoc=281 বা

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


4
আপনার মনে হয় যে আপনার ড্রপডাউন তালিকাটি প্রতিটি পোস্টব্যাকের পরে একই ডেটা বার বার যুক্ত করে বাড়িয়ে দেওয়া উচিত।
কিথ সিরমন্স

ফাঁকা আইটেমটি সেখানে নেই, বা সেখানে কিন্তু কেবল নির্বাচিত হয়নি?
হুইস্ক

আপনার .aspx মার্কআপে যদি ফাঁকা জায়গা থাকে তবে পিছনে কোডে আবদ্ধ থাকলে এটি কাজ করবে।
জন শিহান

13

আমি মনে করি আরও ভাল উপায় হ'ল প্রথমে ফাঁকা আইটেম inোকানো, তারপরে আপনি যেমন করছেন ঠিক তেমন ডেটা বাঁধাই। তবে আপনাকে 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();
}

7

"হুইস্ক" বলেছিলেন, কৌশলটি "অ্যাপেন্ডডাটাবাউন্ডআইটেমস" সম্পত্তিতে রয়েছে

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

ধন্যবাদ "হুইস্ক"


5

আপনার ডেটাবাইন্ডিং করুন এবং তারপরে নিম্নলিখিতগুলি যুক্ত করুন:

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

3

দেখে মনে হচ্ছে আপনি একটি ফাঁকা আইটেম যুক্ত করছেন, এবং তারপরে ডাটাবেইন্ডিং যা তালিকা খালি করবে; ডেটাবাইন্ডিংয়ের পরে ফাঁকা আইটেম .োকানোর চেষ্টা করুন


আমি যখন এটি করি তখন নীচের দিকে ফাঁকা সারিটি উপস্থিত হয়।
সাইফ খান

Sertোকানোর জন্য আপনি সূচকটি নির্দিষ্ট করতে পারেন। জেসনস এর সমাধান দেখুন।
অ্যান্ডি

@ [সাইফ খান]: এবং যদি এটি কাজ না করে তবে আপনার ডেটাসোর্সে ফাঁকা সারি sertোকান, তারপরে ডেটাবাইন্ড
স্টিভেন এ লো।


1

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"));

(ঠিক আছে পরীক্ষিত)


0

আপনার খালি নির্বাচনের একটি ইউনিয়ন থাকতে পারে এমন নির্বাচনী সামগ্রী সহ নির্বাচন করতে পারেন:

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

পিছনে তাকানো, আমি কেবল বিকল্প হিসাবে বাদে এই পদ্ধতির সুপারিশ করব না। আমি নমনীয়তার জন্য ইভেন্টটি পছন্দ করি (অনডাটাবাউন্ড = "মাইরোডডাউন_ডাটাবাউন্ড") তবে আমার বর্তমান ক্ষেত্রে আমি সরলতার জন্য (অ্যাপেন্ডডাটাবাউন্ডআইটেমস = "সত্য") গ্রহণ করছি ting
CINCHAPPS
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.