PDA

View Full Version : پر کردنdropdownlist دوم



bitcob589
چهارشنبه 23 فروردین 1391, 23:10 عصر
با سلام
در نظر بگیرید دو تا dropdownlist داریم که در اولین dropdownlist نام مرکز استانها است و با کلیک بر روی نام مرکز استان در dropdownlist دوم نام شهرستانهای آن استان را نمایش دهد چگونه می توان چنین کاری را انجام داد

dropdownlist مقدار از دیتابیس بخواند

sarapepors
چهارشنبه 23 فروردین 1391, 23:28 عصر
خوب بستگی به طراحی دیتابیستون داره ولی میشه دو جدول برا این کار داشت استان (کد , نام ) شهرستان (کد , نام , کد استان ) شما dropdown هم که رو صفحه تون دارید میتونید یکی رو بایند کنید به جدول استان برای این کار هم میتونید هم storeProcedure استفاده کنید هم از command که . پس از باین کردن خاصیت dataTextFiel دراپ دون اولی رو به نام استان , خاصیت dataValueFiel اون رو با کد استان منتسب میکنید حالا میتونید تو خاصیت selectedindexchange دراپ دون کد بنویسید که اون رکوردهایی رو از جدول شهرستان نمایش بده که کد استانشون برابر با خاصیت selctedvalue دراپدون اول باشه (البته برا بایند کردن دراپ دون ها هم روش های متعددی وجود داره ) dataValueFiel =datavaluefield

bitcob589
چهارشنبه 23 فروردین 1391, 23:37 عصر
خوب بستگی به طراحی دیتابیستون داره ولی میشه دو جدول برا این کار داشت استان (کد , نام ) شهرستان (کد , نام , کد استان ) شما dropdown هم که رو صفحه تون دارید میتونید یکی رو بایند کنید به جدول استان برای این کار هم میتونید هم storeProcedure استفاده کنید هم از command که . پس از باین کردن خاصیت dataTextFiel دراپ دون اولی رو به نام استان , خاصیت dataValueFiel اون رو با کد استان منتسب میکنید حالا میتونید تو خاصیت selectedindexchange دراپ دون کد بنویسید که اون رکوردهایی رو از جدول شهرستان نمایش بده که کد استانشون برابر با خاصیت selctedvalue دراپدون دوم باشه (البته برا بایند کردن دراپ دون ها هم روش های متعددی وجود داره ) dataValueFiel =datavaluefield
آیا در dropdownlist دوم چنین سلکتی نوشته شد که اون رکوردهایی رو از جدول شهرستان نمایش بده که کد استانشون برابر با خاصیت selctedvalue دراپدون دوم باشه

sarapepors
چهارشنبه 23 فروردین 1391, 23:49 عصر
خیر در خاصیت selecteindexchange دراپدون اول کد رو مینویسد چون وقتی ایتمی در دراپدون اول انتخاب میشه قراره که شهرستان متناظر با اون نمایش داده بشه .

bitcob589
چهارشنبه 23 فروردین 1391, 23:56 عصر
زمانی که صفحه لود می شود به دلیل اینکه در dropdowlist اول چیزی سلکت نشده است درون dropdowlist دوم خالی نشان می دهد چگونه در هنگام لود شدن صفحه از خالی بودن dropdownlist دوم جلوگیری کنیم

sarapepors
پنج شنبه 24 فروردین 1391, 00:04 صبح
خوب میتونید به صورت پیش فرض خودتون در کد یکی از ایتم های دراپدون لیست اول رو سلکت کنید در ضمن کد های موجود در فرم لود رو در شرط
!ispostback() بزارید اینو به این خاطر گفتم که خودم این اشتباهو میکردم و با مشکل مواجه میشدم

hamid_shrk
پنج شنبه 24 فروردین 1391, 00:05 صبح
زمانی که صفحه لود می شود به دلیل اینکه در dropdowlist اول چیزی سلکت نشده است درون dropdowlist دوم خالی نشان می دهد چگونه در هنگام لود شدن صفحه از خالی بودن dropdownlist دوم جلوگیری کنیم
تو لود صفحتون هم مقدار dropdownlist.selectedItem.value رو بخونید و باتوجه به اون دراپ دان شهر رو پر کنید

bitcob589
پنج شنبه 24 فروردین 1391, 00:13 صبح
خوب میتونید به صورت پیش فرض خودتون در کد یکی از ایتم های دراپدون لیست اول رو سلکت کنید در ضمن کد های موجود در فرم لود رو در شرط
!ispostback() بزارید اینو به این خاطر گفتم که خودم این اشتباهو میکردم و با مشکل مواجه میشدم
اطلاعات dropdownlist از دیتابیس خوانده می شود چگونه یکی از ایتم های دراپدون لیست اول رو سلکت شود

و چه دستوراتی در !ispostback() نوشته شود

sarapepors
پنج شنبه 24 فروردین 1391, 00:20 صبح
اگر کد پر شدن dropdown ها رئ در فرم لود مینویسید اونها رو در شرطی که نوشتم قرار بدید.

DropDownList1.SelectedIndex = 1;

bitcob589
پنج شنبه 24 فروردین 1391, 00:20 صبح
تو لود صفحتون هم مقدار dropdownlist.selectedItem.value رو بخونید و باتوجه به اون دراپ دان شهر رو پر کنید
کد را برای dropdownlist دوم نوشته شود ؟دو تا dropdowlist اطلاعات خود را از دیتابیس می خوانند آیا دستور اون دراپ دان شهر رو پر می کند

sarapepors
پنج شنبه 24 فروردین 1391, 00:33 صبح
دراپدون اول همه رکورها رو از جدول مربوط به استان میخونه. دراپدون دوم هم در رویداد selectedindex دراپدون اول پر میشه با توجه به dropdown1.selectedvalue . برای این که در ابتدا و زمانی که صفحه شما برای اولین بار پر لود میشه هم دراپدون دومتون خالی نباشه میتونید یکی از آیتم های دراپ دون اول رو انتخاب کنید تا رویداد selectedindex اون فعال بشه و دراپدون دوم هم یه سری شهرستان رو به صورت پیش فرض نمایش بده .

bitcob589
پنج شنبه 24 فروردین 1391, 00:41 صبح
دراپدون اول همه رکورها رو از جدول مربوط به استان میخونه. دراپدون دوم هم در رویداد selectedindex دراپدون اول پر میشه با توجه به dropdown1.selectedvalue . برای این که در ابتدا و زمانی که صفحه شما برای اولین بار پر لود میشه هم دراپدون دومتون خالی نباشه میتونید یکی از آیتم های دراپ دون اول رو انتخاب کنید تا رویداد selectedindex اون فعال بشه و دراپدون دوم هم یه سری شهرستان رو به صورت پیش فرض نمایش بده .
آیا منظورتان کد زیر است یا کد دیگری است


DropDownList1.SelectedIndex = 1;

یا

dropdown2.selectedvalue=1;

bitcob589
پنج شنبه 24 فروردین 1391, 01:02 صبح
زمانی که dropdownlist لود می شود بر روی آیتم اول سلکت است و اگر بر روی آن کلیک شود postback رخ نمی دهد آیا راهی وجود دارد زمانی dropdownlist لود می شودآیتم اول سلکت است اگر بر روی آیتم اول کلیک شود postback رخ دهد

sarapepors
پنج شنبه 24 فروردین 1391, 09:28 صبح
آیا منظورتان کد زیر است یا کد دیگری است


DropDownList1.SelectedIndex = 1;

یا

dropdown2.selectedvalue=1;
سلام منظور من همون کد اول بوده با این حال خودتون باید شرایط مختلف رو تست کنید اگر بهتون جواب میده ازش استفاده کنید .

sarapepors
پنج شنبه 24 فروردین 1391, 09:34 صبح
زمانی که dropdownlist لود می شود بر روی آیتم اول سلکت است و اگر بر روی آن کلیک شود postback رخ نمی دهد آیا راهی وجود دارد زمانی dropdownlist لود می شودآیتم اول سلکت است اگر بر روی آیتم اول کلیک شود postback رخ دهد

ببینید معمولا در یه همچین شرایطی یک مقداری به غیر از دیتا های اصلی (که در این جا نا استان و شهرستان هاست ) به صورت پیش فرض در دراپ دونها استفاده میشه مثلا ممکنه از علامت (-) استفاده بشه یا از عبارت انتخاب کنید اگر میخواین این کار رو انجام بدبن من کدی رو که خودم در این موارد ازش استفاده کردم براتون میذارم اما مطمئن نیستم که کار اصولی هست یا نه البته با این کاری که من میکنم دیگه زمانی که صفحه برا اولین بار لود میشه شهرستان های خاصی رو نمایش نمیده .

protected void drpdnSoftName_DataBound(object sender, EventArgs e)
{
drpdnSoftName.Items.Add("-");
int x = drpdnSoftName.Items.Count - 1;
drpdnSoftName.SelectedIndex = x;
}
موفق باشید.

bitcob589
پنج شنبه 24 فروردین 1391, 10:06 صبح
تا زمانی که نام استان انتخاب نشده باشد نام شهرستان در dropdownlist دوم نمایش داده نمی شود چگونه می توان تا زمانی که نام استان انتخاب نشده است dropdownlist دوم را نمایش ندهیم (غیر قابل مشاهده باشد )

bitcob589
پنج شنبه 24 فروردین 1391, 12:30 عصر
کد زیر نوشته شد زمانی که صفحه برای اینکه در اولین بار لود می شود dropdownlist دوم خالی نباشد ولی dropdownlist دوم را خالی نشان می دهد

if(!ispostback)
{
DropDownlist.SelectIndex=1;
}

bitcob589
پنج شنبه 24 فروردین 1391, 22:17 عصر
دو dropdownlist داریم در dropdownlist اول نام استانها است و با انتخاب نام استان در dropdownlist دوم نام شهرستانهای استانی که dropdownlist اول انتخاب شده است را نمایش می دهد زمانی که صفحه لود در dropdownlist دوم هیچ آیتمی وجود ندارد (نام شهرستانها)
چگونه در زمان لود صفحه dropdownlist دوم را پر کنیم
کد زیر نوشته شد ولی dropdownlist دوم را خالی نشان می دهد dropdownlist اطلاعات خود را از دیتابیس می خوانند


if(!ispostback){DropDownlist.SelectIndex=1;}

لطفا راهنمایی بفرمایید

saha_h2001
سه شنبه 19 اردیبهشت 1391, 16:26 عصر
با سلام
ببینید فرض کنید در دراپ دون زیر اسامی استان ها هست که از دیتا بیس خونده میشه و در داراپ اول نمایش داده میشود
if (!Page.IsPostBack)
{
DataTable dt = new DataTable();
dt = RH.ShowNames();
cmbBoy.DataSource = dt;
cmbBoy.DataTextField = dt.Columns["Name"].ToString();
cmbBoy.DataValueField = dt.Columns["أشئe"].ToString();
cmbBoy.DataBind();
cmbBoy.SelectedIndex = 1;
{
حالا میخواید زمانی که روی یکی از آیتم ها کلیک کردین لیست مثلا نامهای مرتبط با این نمایش داده شود.
کافیست کد زیر را بنویسید

try
{
DataTable dt = new DataTable();
dt = RH.ShowFatherNames(cmbBoy.SelectedValue.ToString() );
cmbFather.DataSource = dt;
cmbFather.DataTextField = dt.Columns["Name"].ToString();
cmbFather.DataBind();
}
catch (Exception ex)
{
lblError.Text = "خطای سیستم : " + ex.Message;
}

bahareh1368
سه شنبه 19 اردیبهشت 1391, 20:13 عصر
راحت ترین و بی دردسر ترین راه اینه که dropdownlist اولی رو به دیتا سورس مربوط به کشورها وصل کنی و نام کشورها رو نشون بده و dropdownlistدومی رو به دیتاسورس مربوط به استانها وصل بشه اما در دیتاسورس دومی(استانها) در پراپرتی where یک پارامتر بنام CityID اضافه کن و بگو این مقدار رو از کنترل بنام دراپ دون دومی با defaultvalue صفر بخون.اینطوری بدون نوشتن هیچ کدی میتونی این کار رو انجام بدی :


<asp:EntityDataSource ID="dsMainProduct" runat="server" ConnectionString="name=newEntities"
DefaultContainerName="newEntities" EnableFlattening="False" EntitySetName="Products">
</asp:EntityDataSource>
<asp:Label ID="lblEditions" runat="server" Text="برنامه ها:"></asp:Label>

<asp:DropDownList ID="drpMainProduct" runat="server" Width="150px" DataSourceID="dsMainProduct"
DataTextField="ProductTitle" DataValueField="ProductID" AutoPostBack="True" >
</asp:DropDownList>
<br />
</div>
<asp:EntityDataSource ID="dsProductEditions" runat="server" AutoGenerateWhereClause="True"
ConnectionString="name=newEntities" DefaultContainerName="newEntities"
EnableFlattening="False" EntitySetName="Editions" Where="">
<WhereParameters>
<asp:ControlParameter ControlID="drpMainProduct" DbType="Int32" DefaultValue="0"
Name="ProductID" PropertyName="SelectedValue" />
</WhereParameters>
</asp:EntityDataSource>

monadifard
سه شنبه 13 فروردین 1392, 11:39 صبح
سلام دوستان
من امتحان کردم نشد
میشه یه نمونه بذارید ؟

sanaz.dadkhah
سه شنبه 13 فروردین 1392, 13:14 عصر
میتونی از این استفاده کنی


<asp:SqlDataSource ID="SqlDataSource9" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT [group_name], [group_id] FROM [article_group]"></asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource6" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT * FROM [article_sub_group] WHERE ([group_id] = @group_id)">
<SelectParameters>
<asp:ControlParameter ControlID="DropDowngroup" Name="group_id" PropertyName="SelectedValue"
Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>




<asp:DropDownList ID="DropDowngroup" runat="server" AutoPostBack="True" DataSourceID="SqlDataSource9"
DataTextField="group_name" DataValueField="group_id" Width="95%">
</asp:DropDownList>




<asp:DropDownList ID="DropDownsubgroup" runat="server" AutoPostBack="True" DataSourceID="SqlDataSource6"
DataTextField="sub_group_name" DataValueField="sub_group_id" Width="95%">
</asp:DropDownList>