PDA

View Full Version : دو فیلد یا بیشتر در drop down list



papa_fal
چهارشنبه 11 مرداد 1385, 08:02 صبح
با سلا م به دوستان
من میخوام که دو فیلد از جدول را بازیابی کنم و در dropdownlist نشون بدم.

یک فیلد مشکلی ندارد مثلا نام.

ولی اگر بخوام دو تا فیلد بیشتر را بازیابی بکنم.چکار باید بکنم؟؟

یعنی در لیست این چنین دیده شود:

نام-نام خانوادگی

علی-حسنی

مریم-اکبری

تا اونجایی که من می دونم دو نوع می توان نوشت:



(1)
con4.Open();
SqlDataReader dtr1 = com4.ExecuteReader();
mydrop1.DataSource = dtr1;
while(dtr1.Read())
{
mydrop1.Items.Add(new ListItem(dtr1["name"].ToString(),dtr1["id"].ToString()));
}


(2)
con3.Open();
SqlDataReader dtr = com3.ExecuteReader();
mydrop.DataSource = dtr;
mydrop.DataTextField = "name";
mydrop.DataValueField = "id";
mydrop.DataBind();



ممنون میشم که کمکم کنید.در ضمن نمی دونم که چرا وقتی به حالت 1 می نویسم وقتی برای مثال دکمه{ثبت} را فشار می دم.محتویات لیست یک بار دیگر تکرار می شود یعنی اگر قبلا 3 فیلد داشتم با فشار دکمه 6 فیلد می شود.با فشار دیگر دکمه 9 و 12و......... همین طور.



منتظر راهنمایی های شما هستم.

reza_rad
چهارشنبه 11 مرداد 1385, 09:29 صبح
ولی اگر بخوام دو تا فیلد بیشتر را بازیابی بکنم.چکار باید بکنم؟؟

باید concat کنی نتیجه کوئری رو(یعنی به هم وصلشون کنی) sql واسه ی اینکارا دستوراتی داره.



در ضمن نمی دونم که چرا وقتی به حالت 1 می نویسم وقتی برای مثال دکمه{ثبت} را فشار می دم.محتویات لیست یک بار دیگر تکرار می شود یعنی اگر قبلا 3 فیلد داشتم با فشار دکمه 6 فیلد می شود.با فشار دیگر دکمه 9 و 12و......... همین طور.

وقتی یکبار رو dropdwonlist کلیک می کنی دوباره فرم پست بک میشه. اگه این کد توی متد لود فرم باشه باید postback شدن یا نشدنش چک بشه...

papa_fal
چهارشنبه 11 مرداد 1385, 10:01 صبح
خوب من باید برای قرار دادن دو فیلد یا بیشتر این خط را تغییر بدم درسته؟؟؟


mydrop.DataTextField = "name";

مثلا اگه بخوام هم نام و هم نام خانوادگی رو نشون بده .باید یک family هم اضافه بکنم.
ولی هر کاری کردم این فقط یک فیلد را قبول کرد.!!!!!!!!

aynehband
چهارشنبه 11 مرداد 1385, 10:16 صبح
ابتدا در یک رشته هر دو را جمع کن و سپس رشته ها را اضافه کن

reza_rad
چهارشنبه 11 مرداد 1385, 10:18 صبح
نه!!!!

کوئری رو باید اینجوری عوض کنی:


select form_name+' '+form_caption as filed1 from aut_tbl_form



حالا اون field1 میشه نام مستعار برای دو تا فیلدی که با هم concat شدن. حالا این field1 رو بذار جای name همونجایی که خودت گفتی
البته جای اون دو تا فیلدی که بهم وصلشون کردم و جای اسم جدول هم ماله خودتو بذار.