PDA

View Full Version : سوال: انتخاب یک گزینه از یک کمبوباکس و درج اون گزینه در یک تکس باکس



zeos_man
شنبه 01 بهمن 1390, 16:16 عصر
درود بر همه دوستان عزیز

من چطور میتونم در یک Page که مثلا چندتا کنترل داره و یکیشون کمبو باکس هست که چندتا گزینه ( Item ) در اون کمبوباکس هست , میخوام وقتی کاربر خواست یکی از این گزینه ها رو انتخاب میکنه توضیحاتی از اون گزینه انتخاب شده توسط کاربر در یک تکس باکس که در زیر اون کمبوباکس هست درج بشه خواهش میکنم یکی کمکم کنه . البته نمیخوام Page دوباره رفرش بشه . ممنونم

bftarane
شنبه 01 بهمن 1390, 20:33 عصر
سلام.
من اين کدها رو همين الآن نوشتم. فکر کنم کمکت کنه.

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
switch (DropDownList1.SelectedItem.Text)
{
case "one":
TextBox1.Text = "شما one را انتخاب کرده ايد.";
break;
case "two":
TextBox1.Text = "شما two را انتخاب کرده ايد";
break;
case "three":
TextBox1.Text = "شما Three را انتخاب کرده ايد";
break;
case "four":
TextBox1.Text = "شما four را انتخاب کرده ايد.";
break;
default:
break;
}
}
کمبوباکس تا جايي که من مي دونم در Asp.net وجود نداره من به جاش از
dropdownlist استفاده کردم.
براي اينکه بدون رفرش شدن صفحه اين کار انجام بشه هم فکر مي کنم بايد از Ajax استفاده کنيد به اين نحو که
يه ScriptManger و يه UpdatePanel بندازي تو صفحه و
Textbox و dropdownlist را بندازي تو يه UpdatePanel
يعني در قسمت Source اين کدها را داشته باشي:

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:DropDownList ID="DropDownList1" runat="server"
AutoPostBack="True" onselectedindexchanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem>one</asp:ListItem>
<asp:ListItem>two</asp:ListItem>
<asp:ListItem>three</asp:ListItem>
<asp:ListItem>four</asp:ListItem>
</asp:DropDownList>
<br />
<br />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</ContentTemplate>
</asp:UpdatePanel>

در ضمن خاصيت AutoPostBack مربوط به Dropdownlist رو True قرار بده

reza4359
یک شنبه 02 بهمن 1390, 11:41 صبح
سلام حالا اگه بخواهیم همین رو با یک حلقه for پیاده سازی کنیم باید چکار کنیم؟
یعنی مقادیر رو دیگه به صورت دستی داخل switch case وارد نکنیم و خودمون به صورت پویا اضافه کنیم و اونوقت همین کار رو انجام بدیم
با یک تکس باکس مقادیر دراپ لیست رو وارد کنیم و با کلیک روی آیتم هاش توضیحاتش رو وارد تکس باکس دیگه کنیم

bftarane
یک شنبه 02 بهمن 1390, 20:00 عصر
خوب من سعي کردم کاري که شما گفتيد رو انجام بدم
به اين صورت که
يه جدول با فيلدهاي Id، myitem، description ايجاد کردم و به صورت دستي اطلاعات رو در اون وارد کردم
يه SqlDataSource در صفحه انداختم و اون رو طوري پيکربندي کردم که فيلدهاي جدولم رو Select کنه
براي رويداد لود صفحه کدهاي زير رو نوشتم

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DropDownList2.DataSource = SqlDataSource1;
DropDownList2.DataTextField = "myitem";
DropDownList2.DataValueField = "description";
DropDownList2.DataBind();
}

}
براي رويداد SelectedIndexChanged مربوط به دراپدان کدهاي زير رو نوشتم

protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
{
foreach (ListItem item in DropDownList2.Items)
{
TextBox2.Text = DropDownList2.SelectedItem.Value;

}


}
در ضمن AutoPostBack مربوط به DropDown رو هم True قرار دادم.
نتيجه داد.

با یک تکس باکس مقادیر دراپ لیست رو وارد کنیمشک دارم منظورتون رو فهميده باشم اگه منظورتون اينه که اطلاعات رو از طريق TextBox وارد جدول کنيم با يه دستور Insert ساده مي شه اين کار رو انجام داد که فکر کنم خودتون بلد باشيد.
اميدوارم کمک کرده باشم.
.....................
ديدم اون foreach بودنش منطقي نيست.
کد رو به صورت زير تغيير دادم. بازم نتيجه داد.

protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
{

TextBox2.Text = DropDownList2.SelectedItem.Value;




}

zeos_man
دوشنبه 03 بهمن 1390, 13:52 عصر
من اين کدها رو همين الآن نوشتم. فکر کنم کمکت کنه.
ممنونم خیلی کمک کردین من واقعا گیج شده بودم آخه تازه دارم ASP.NET کارمیکنم هرکاری میکردم DropDownList رو که آیتم هاش رو حین اجرا انتخاب میکردم انگار نه انگار ! بعد فهمیدم که باید ویژگی AutoPostBack رو فعال میکردم مابقی اش آسون بود از این که کمکم کردین ممنونم .

zeos_man
دوشنبه 03 بهمن 1390, 13:54 عصر
راستی اگه بخوام واسه یه Page یه عکس بک گراند انتخاب کنم باید چه کدی بنویسم نمیخوام از CSS استفاده کنم چون بلد نیستم با کد Html باشه بهتره

bftarane
دوشنبه 03 بهمن 1390, 15:14 عصر
در اين لينک مي تونيد جوابتون رو پيدا کنيد. هم با HTML گفته هم CSS
http://www.w3schools.com/tags/att_body_background.asp
ولي بهتون توصيه مي کنم CSS رو ياد بگيريد. سخت نيست. من خودم از تالار Web Design همين سايت برنامه نويس و همين سايتي که آدرسش رو بالا مي بينيد (www.w3schools.com) خيلي استفاده کردم. به نظر من مهمترين قسمتش اينه که بدونيد کجاها کدهاتون رو مي تونيد بنويسيد.

reza4359
دوشنبه 03 بهمن 1390, 15:43 عصر
سلام دوستان من با توضیحات شما درستش کردم فایلش رو میذارم که استفاده کنید