View Full Version : سوال: چطوری با نوشتن در یک تکست باکس ،کمبو باکس تغییر کند؟
bamzi software
چهارشنبه 15 آبان 1387, 11:29 صبح
سلام
من با c# در ویژوال استودیو کد می نویسم و صفحه وب داینامیک طراحی کردم..
در یکی از این صفحات که مربوط به رجیستر هست می خوام با نوشتن در یک تکست باکس ،کمبو باکس تغییر کند.
محتویات کمبو باکس توسط edit item مشخص میشه نه از دیتا سورس...
می خوام وقتی یک شماره تلفن تو تکست باکس نوشته شد،سطر مورد نظر در کمبوباکس نشون داده بشه..
چطوری باید این کارو انجام بدم؟
ممنون از شما
bamzi software
پنج شنبه 16 آبان 1387, 09:21 صبح
حتما باید از دیتابیس استفاده بشه؟!!
من اصلا نمی خوام از دیتا بیس استفاده بشه..
emad_67
پنج شنبه 16 آبان 1387, 11:29 صبح
خوب شما باید با توی رویداد onkeyup اون textbox تابعی(جاوا اسکریپت) رو فراخوانی کنی که بیاد و ایندکس dropdown رو تغییر بده. مثلا اینو ببین:
<html dir="rtl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>New Page 1</title>
<script type="text/javascript">
function change(value)
{alert(value);
if(value=="1")
document.getElementById("drp").selectedIndex=0;
else if(value=="2")
document.getElementById("drp").selectedIndex=1;
else
document.getElementById("drp").selectedIndex=2;
}
</script>
</head>
<body>
<input type="text" onkeyup="change(this.value);">
<select id="drp">
<option>1</option>
<option>2</option>
<option>3</option>
</select>
</body>
</html>
bamzi software
یک شنبه 19 آبان 1387, 10:18 صبح
ممنون، اما می خوام با دستورات c# کد بنویسم...
در اینصورت باید چه کدی بنویسم؟
emad_67
یک شنبه 19 آبان 1387, 11:58 صبح
ممنون، اما می خوام با دستورات c# کد بنویسم...
در اینصورت باید چه کدی بنویسم؟
یعنی میخوای موقع تغییر تکس باکس postback انجام بشه؟
من درست نفهمیدم چیکار میخوای بکنی؟
bamzi software
یک شنبه 19 آبان 1387, 15:54 عصر
می خوام وقتی تو تکست باکس شماره نوشته شد،با توجه به عدد نوشته شده dropdownlist که از قبل item هاش مشخص شده تغییر کنه...
خاصیت autopostback تکست باکس رو true کردم...
حالا فکر کنم باید تو رویداد text changed تکست باکس کد بنویسم که متن dropdownlist مشخص بشه...اینو دقیقا نمی دونم!!!!
emad_67
یک شنبه 19 آبان 1387, 17:49 عصر
می خوام وقتی تو تکست باکس شماره نوشته شد،با توجه به عدد نوشته شده dropdownlist که از قبل item هاش مشخص شده تغییر کنه...
خاصیت autopostback تکست باکس رو true کردم...
حالا فکر کنم باید تو رویداد text changed تکست باکس کد بنویسم که متن dropdownlist مشخص بشه...اینو دقیقا نمی دونم!!!!این روش شما اصلا درست نیست.
به فرض اگر auto postback رو هم فعال کنی، وقتی postback انجام میشه که focus از روی textbox برداشته بشه. یعنی مثلا کاربر باید وقتی متنش رو وارد کرد روی یه کنترل دیگه یا یه جایی از صفحه کلیک کنه تا focus از روی textbox برداشته بشه و بعد postback انجام میشه.
بنابراین اینکار بهتره با همون javascript و client side انجام بشه.
ولی اگر همچنان خواستی از همین روش استفاده کنی باید تو همون رویداد textChange کدت رو بنویسی و dropdown رو تغییر بدی.
hanif_x90
یک شنبه 19 آبان 1387, 18:11 عصر
فکر کنم با ajax بشه
emad_67
یک شنبه 19 آبان 1387, 19:11 عصر
باید با add.item کار کنه و مقدار رو برابر اون تکست باکسی که میگه بزاره راحت ترین کار اینه بقیه این کارها هم مناسبه ولی توی ajax و غیره یکم سخت تر میشه و اینکه میتونه از MS Ajax استفاده کنه
با items.add که شما میگی فقط میشه یه item رو به dropdown اضافه کرد نه اینکه item های فعلی رو انتخاب کرد. او چیزی که منظور شماست احتمالا اینه:
DropDownList1.SelectedValue = TextBox1.Text;
اگر از ajax استفاده بشه قضیه فرق داره ولی true کردن autopostback در این مورد به نظرم کلا غلطه.
محمدامین شریفی
دوشنبه 20 آبان 1387, 00:57 صبح
ممنون، اما می خوام با دستورات c# کد بنویسم...
در اینصورت باید چه کدی بنویسم؟
با این حرفتان شما حتما باید از autopostback اسافاده کنید.که کلا این روش یعنی فاجعه
دوم میتونی از یک دکمه ای استفاده کنی که submit انجام بده.
ajax میتونه اینجا چیکار کنه،دوستان؟
اگر بتونی یکم کوتاه بیای از response & request استفاده کن.مانند مثال زیر:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
string sFirst = Request.Form["txtFirst"];
string sSecond = Request.Form["txtSecond"];
string sOperation = Request.Form["optOperation"];
int nF = 0;
int nS = 0;
int.TryParse(sFirst, out nF);
int.TryParse(sSecond, out nS);
int nR = 0; if (sOperation == "Add")
nR = nF + nS;
else
nR = nF - nS;
}
}
}
در مورد این کد پرسشی داشتید،پاسخ میدهم
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.