PDA

View Full Version : سوال: طریقه دسترسی و بایند کردن لیست کشویی داخل گیرید



zhr.rezae66i
یک شنبه 29 بهمن 1391, 08:11 صبح
سلام
من کد زیر رو برای بایند کردن DropDownList داخل گیرید کردم
اولا که نمیدونم آیا این روشه درستیه و بعد اینکه وقتی بایند میشه چیزی که داخل گیرید لیست میکنه اینه:
system.Data.Common.DataRecordInternal
لطفا راهنمایی کنید ممنون


protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Footer)
{
DropDownList dd =(DropDownList) e.Row.FindControl("DropDownOrganFooter");
if (dd != null)
{

SqlConnection sc = new SqlConnection(@"");
SqlCommand cmd = new SqlCommand("select strOrganName from tblOrders", sc);
sc.Open();
SqlDataReader dr = cmd.ExecuteReader();
dd.DataSource = dr;
dd.DataBind();
dr.Close();
sc.Close();
}
}
}

zhr.rezae66i
یک شنبه 29 بهمن 1391, 08:15 صبح
یه سواله دیگه
من اگه بخام 4 تا dropDown داخل گیرید بزارم برای هرکدوم باید یبار به دیتا بیس وصل شم یا اینکه ...
میشه راهنمایی کنید

ahmad156
یک شنبه 29 بهمن 1391, 08:36 صبح
سلام
شما وقتی dropdownlist رو مقدار میدین باید 2 چیز رو در نظر بگیرین
1-مقداری که نمایش داده میشه
2-کلیدی که که برای مقدار نمایش داده شده در نظر گرفته میشه که با استفاده از دستورات زیر میتونین این کار رو بکنین

DropDownList1.DataValueField
DropDownList1.DataTextField


آره بهتره همین کارو بکنین

mohsen_f_b
یک شنبه 29 بهمن 1391, 09:03 صبح
سلام

شما یک DataSet (به طور مثال گفتم- میتوانید از Data Table و امثال اینا استفاده کنید) میسازید. یک بار اطلاعاتی که از طریق دیتابیس برای بایند کردن DropDown فراخوانی میکنید در آن قرار میدهید و هربار خواستید از طریق همان Dataset اطلاعات را بایند میکنید. دیگه اینطوری شما فقط و فقط یکبار به دیتابیس وصل شده اید.

موفق باشید

ahmad156
یک شنبه 29 بهمن 1391, 09:06 صبح
دوست عزیز 4 query متفاوت هست چه جوری میشه با یه بار وصل شدن به DataBase (به غیر از sp) اینکار رو کرد؟

mohsen_f_b
یک شنبه 29 بهمن 1391, 09:16 صبح
دوست عزیز 4 query متفاوت هست چه جوری میشه با یه بار وصل شدن به DataBase (به غیر از sp) اینکار رو کرد؟

در کد بالا که QUERY متفاوتی نمی بینم ولی شما می توانید از قابلیت RowFilter در DataTable و یا DataView اطلاعات موجود را با توجه به هرچیزی که می خواهید Filter کنید. اینطوری شما فقط یکبار اطلاعات را دریافت و مابقی کار بر عهده کدهای شماست.

موفق باشید

ahmad156
یک شنبه 29 بهمن 1391, 09:24 صبح
دوستمون گفته بودن 4 تا DropDown یعنی 4 تا query .
منظورتون رو متوجه نشدم.چی رو RowFilter کنم؟
ممنون

mohsen_f_b
یک شنبه 29 بهمن 1391, 09:32 صبح
منظورم از RowFilter این بود که مثلا شما یک جدول دارید و اطلاعات قرار از آن جدول در n تا DropDown با ضرطهای مختلف بایند شود نیاز نیست برای هرکدام از این n تا DropDown به دیتابیس وصل بشید و شما اطلاعات جدول را دریافت و با عملیات RowFilter هرخروجی که می خواهید بدست بیار برای قرار دادن در DropDown.
من منظور دیگه ای از سوال برداشت کردم. در کدی که دربالا من دیدم به ازای هر Row مربوط Grid یک Connection به بانک میزنند که این کار از نظر من اشتباه وقتی میشه اطلاعات را که مشابه هم هستند یکبار یکجا نگه داری و استفاده نمود.

موفق باشید