PDA

View Full Version : سوال: تغییر عناوین ستون های Girdview



mohammad kafiyan
شنبه 14 اسفند 1389, 13:45 عصر
با سلام به دوستان من با استفاده از کدنویسی در فرم load صفحه ام girdview را fill می کنم
وسپس عناوین ستون girdview را با استفاده از دستور زیر تعیین می کنم ولی پیغام out of range می ده

GridView2.Columns[0].HeaderText = "کد ملک";
چه کار کنم
و سوالی دیگر هم داشتم
من دو تا table یکی استان و دیگری شهر دارم که id استان را در table شهر قرار دادم به عنوان ارتباط دو جدول و در فرم لود droplist1 را پر می کنم و مشکلی هم نیست و بعد از آن به کمک droplist1 که نام استان در آن قراردارد را می خواهم droplist2 را قرار است نام شهر قرار بگیرد را پر کنم این کد را در windows application جواب گرفتم ولی نمی دونم چرا اینجا خروجی را بر نمی گرداند (البته از linq استفاده کرده ام)


public object City_FillDroplist()
{
string loc;
var Query = (from T in bank.ostans
where T.name_ostan == name_ostan
select T).Single();
loc = Query.id;
var Query1 = (from T in bank.cities
where T.id_ostan == loc
select T.name);
return Query1;
}

Behrang_a
شنبه 14 اسفند 1389, 16:58 عصر
با سلام به دوستان من با استفاده از کدنویسی در فرم load صفحه ام girdview را fill می کنم
وسپس عناوین ستون girdview را با استفاده از دستور زیر تعیین می کنم ولی پیغام out of range می ده

GridView2.Columns[0].HeaderText = "کد ملک";
چه کار کنم


بهتره به جای فرم لود بزاریش تو Gridview2_DataBinding اونجا جواب میده



و سوالی دیگر هم داشتم
من دو تا table یکی استان و دیگری شهر دارم که id استان را در table شهر قرار دادم به عنوان ارتباط دو جدول و در فرم لود droplist1 را پر می کنم و مشکلی هم نیست و بعد از آن به کمک droplist1 که نام استان در آن قراردارد را می خواهم droplist2 را قرار است نام شهر قرار بگیرد را پر کنم این کد را در windows application جواب گرفتم ولی نمی دونم چرا اینجا خروجی را بر نمی گرداند (البته از linq استفاده کرده ام)


public object City_FillDroplist()
{
string loc;
var Query = (from T in bank.ostans
where T.name_ostan == name_ostan
select T).Single();
loc = Query.id;
var Query1 = (from T in bank.cities
where T.id_ostan == loc
select T.name);
return Query1;
}


علت اینکه بهت برنمیگردونه اینه که از طرف Client باید یه درخواست که احتمالا id استان هست برگرده به سرور و بعد سرور اون رو ملاک عمل قرار بده برای پر کردن لیست دوم بهترین کار اینه که لیست دوم رو در رویداد droplist1_SelectedIndexChange پر کنی اینطوری هر بار که از لیست اول چیزی رو انتخاب کنی صفحه یک دور PostBack میشه و با مقداری که از لیست اول میگیره لیست دوم رو پر میکنه
حالا امتحان کن اگه نشد بگو

mohammad kafiyan
شنبه 14 اسفند 1389, 19:15 عصر
دوست عزیز تابع بالا را در یک کلاس نوشتم و در کنترل droplist1 از کد زیر کلاس را فراخوانی کردم و مقدار تابع که در بالا نوشتم در droplist2 ریختم به صورت زیر ولی هیچ چیزی برنمی گرداند

protected void DropDownList6_SelectedIndexChanged(object sender, EventArgs e)
{
//DropDownList2.Text = "";
amlak.Name_ostan = DropDownList1.Text;
var Query = amlak.City_FillDroplist();
if (Query != null)
{
DropDownList2.DataSource = Query;
DropDownList2.DataBind();
}

}
و به تازه گی به مشکل دیگه برخوردم
که یک صفحه دارم و دو کنترل radiobuttonlist2,radiobuttonlist1 که در کنترل اولی radiobuttonlist1شامل دو آیتم موجر و مستاجر است
ودر کنترل دوم 6 عدد آیتم که شامل مسکن - آپارتمان و ... میباشد
می خواهم وقتی کاربر بروی یکی از آیتم های کنترل radiobuttonlist1 انتخاب کرد و بعد یکی دیگر از آیتم های radiobuttonlist2 انتخاب کرد، girdview براساس
آیتم های انتخاب شده در دو کنترل radiobuttonlist2,radiobuttonlist1 در databaseجستجو و مجددا پر شود چگونه ؟
البته من با استفاده از یک تابع در کلاسم ، کد زیر برای برگدانم مقادیر استفاده می کنم


public object Amlak_Showejareh()
{
var Query = (from T in bank.amlak_ejarehis
where T.type_customer==type_customer_ejareh && T.type_melk==type_melk_ejareh
select new { T.id ,T.type_customer,T.type_melk,T.ostan,T.city,T.addr ess1});
return Query;
}

Behrang_a
شنبه 14 اسفند 1389, 19:37 عصر
دوست عزیز تابع بالا را در یک کلاس نوشتم و در کنترل droplist1 از کد زیر کلاس را فراخوانی کردم و مقدار تابع که در بالا نوشتم در droplist2 ریختم به صورت زیر ولی هیچ چیزی برنمی گرداند

protected void DropDownList6_SelectedIndexChanged(object sender, EventArgs e)
{
//DropDownList2.Text = "";
amlak.Name_ostan = DropDownList1.Text;
var Query = amlak.City_FillDroplist();
if (Query != null)
{
DropDownList2.DataSource = Query;
DropDownList2.DataBind();
}

}

در این مورد اول باید دقت کنی که این رویداد حتما باید رویداد بر روی droplist1 باشه، من درست متوجه نمیشم که کلاس Amlak چی هست اما موردی که وجود داره اینه که باید حتما یه مقداری رو به متد City_FillDropList بفرستی چون بر خلاف نرم افزارهای ویندوز ٰ‌نرم افزارهای تحت وب مقادیر رو در حافظه نگه نمیدارن اینجا کافیه که متد رو یه تغییر بدی که مقدار انتخاب شده droplist1 رو داخلش بندازی بعد متد بر اساس اون مقدار Query رو بگیره و برگردونه و بعدش اون رو به لیست دوم متصل کنی.




و به تازه گی به مشکل دیگه برخوردم
که یک صفحه دارم و دو کنترل radiobuttonlist2,radiobuttonlist1 که در کنترل اولی radiobuttonlist1شامل دو آیتم موجر و مستاجر است
ودر کنترل دوم 6 عدد آیتم که شامل مسکن - آپارتمان و ... میباشد
می خواهم وقتی کاربر بروی یکی از آیتم های کنترل radiobuttonlist1 انتخاب کرد و بعد یکی دیگر از آیتم های radiobuttonlist2 انتخاب کرد، girdview براساس
آیتم های انتخاب شده در دو کنترل radiobuttonlist2,radiobuttonlist1 در databaseجستجو و مجددا پر شود چگونه ؟
البته من با استفاده از یک تابع در کلاسم ، کد زیر برای برگدانم مقادیر استفاده می کنم


public object Amlak_Showejareh()
{
var Query = (from T in bank.amlak_ejarehis
where T.type_customer==type_customer_ejareh && T.type_melk==type_melk_ejareh
select new { T.id ,T.type_customer,T.type_melk,T.ostan,T.city,T.addr ess1});
return Query;
}


برای این کار نکته هایی که برای لیستهای قبلیت گفتم رو در نظر بگیر ، مقدار RadioButtonlist1‌ و RadioButtonList2 رو به متد بده و بعد از اینکه Query مقادیر رو برگردوند اون رو به Gridview متصل کن و بعد
Gridview1.DataBind();
رو اجرا کن

mohammad kafiyan
دوشنبه 16 اسفند 1389, 17:42 عصر
سلام به دوستان آقا مشکل من راجب به droplist ها حلشد و فقط نیاز به یک postback کردن droplist1 بود ولی یک مشکل کوچولو هست و این که هر دفعه که droplist1 را باز می کنم گزینه ازآن انتخاب میکنم و عملیات postbackانجام می شه دوباره بر میگرده سراق گزینه اول droplist1 را می اورد و اجازه نمی دهد که دیگر گزینه های موجود در droplist1 انتخاب شود علت چیست ?

Behrang_a
سه شنبه 17 اسفند 1389, 08:26 صبح
سلام به دوستان آقا مشکل من راجب به droplist ها حلشد و فقط نیاز به یک postback کردن droplist1 بود ولی یک مشکل کوچولو هست و این که هر دفعه که droplist1 را باز می کنم گزینه ازآن انتخاب میکنم و عملیات postbackانجام می شه دوباره بر میگرده سراق گزینه اول droplist1 را می اورد و اجازه نمی دهد که دیگر گزینه های موجود در droplist1 انتخاب شود علت چیست ?


زمانی که postback انجام میشه اطلاعات از اول به کنترلها Bind میشن بنابراین droplist1 اطلاعات رو نگه نمیداره، میتونی قبل از postback ، یک Index یا یک Id از چیزی که انتخاب شده بوده تو یه متغیر درون Viewstate نگه داری و وقتی صفحه باز شد اگه اون مقدار در Viewstate خالی نبود اون رو از droplist1 انتخاب کنی


protected void Page_Load(object sender, EventArgs e)
{

if(ViewState["drpValue"] !=Null)
droplist1.FindItemByValue(ViewState["drpValue"].ToString()).Selected = true;
}