PDA

View Full Version : سوال: مشكل با عمليات جستجو



veniz2008
شنبه 22 آبان 1389, 10:53 صبح
سلام دوستان،من ميخوام براي جستجو بدون گذاشتن دكمه از updatepanel استفاده كردم،به اينصورت كه textbox رو داخل updatepanel گذاشتم و براي رويداد textchanged اون كدهاي مربوط به جستجو رو گذاشتم،مشكل اينجاست كه با وارد كردن مقدار مورد نظر داخل textbox عمل جستجو انجام نميشه و حتما بايد كليد enter از طرف كاربر زده بشه تا نتيجه جستجو انجام بشه،درصورتيكه من ميخوام بصورت همزمان با ورود اطلاعات،نتيجه جستجو هم نشان داده بشه،بدون اينكه دكمه enter فشار داده بشه،مشكل كارم كجاست؟،لطفا راهنمايي كنيد.تشكر.

ایمان مدائنی
شنبه 22 آبان 1389, 11:19 صبح
دوست عزيز اينطوريس پس از ورود هر كاراكتر جست و جو انجام ميشه
شما بايد ببيني كه اين جست و جو آيا تعداد كاراكتر خاصي داره
مثلا پس از ورود 8 كاراكتر جستو جو انجام بشه
شما كدهاي جست و جو رو بزار تا ببينيم مشكل كجاست

veniz2008
شنبه 22 آبان 1389, 22:35 عصر
خاصیت autopostback رو true کردم و هم کنترلی که قراره نتیجه رو نشون بده داخل updatepanel هستش،ولی بازم حتما باید کلید enter یا tab رو بزنم تا نتیجه نمایش داده بشه(من این کد رو برای شماره دانشجویی با استفاده از دکمه به کار بردم و با وارد کردن 2 رقم و کلیک کردن دکمه جستجو با موفقیت انجام شده)،لطفا راهنمایی کنید.اینم کد:

strcon = ("Data Source = .\\wincc;Initial Catalog=US_DB;Integrated Security=True");
con = new SqlConnection(strcon);
cmd.Connection = con;
SqlCommand cmd1 = new SqlCommand();
cmd1.Connection = con;
cmd1.CommandText = "SELECT * FROM Student Where UserName Like '%" + TextBox1.Text + "%'";
con.Open();
SqlDataReader reader = cmd1.ExecuteReader();
if (reader.Read() == true)
{
Label2.Text = "object found";
}
else
{
Label2.Text = "چنین موردی یافت نشد";

}

sajjadrad
یک شنبه 23 آبان 1389, 00:33 صبح
نام جدول users
عبارک مورد جستجو search



con2.Open();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = new SqlCommand();
da.SelectCommand.Connection = con2;
da.SelectCommand.CommandType = CommandType.Text;
da.SelectCommand.CommandText = "select * from users where name like '%search%' ";
DataTable dt = new DataTable();
da.Fill(dt);
con2.Close();
DataView view1 = new DataView(dt);
CurrencyManager cur;
cur = (CurrencyManager)(this.BindingContext[view1]);
if (cur.Count == 0)
MessageBox.Show("Not Found", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
else
dataGridView1.DataSource = dt;

Reza_Yarahmadi
یک شنبه 23 آبان 1389, 08:04 صبح
خاصیت autopostback رو true کردم و هم کنترلی که قراره نتیجه رو نشون بده داخل updatepanel هستش،ولی بازم حتما باید کلید enter یا tab رو بزنم تا نتیجه نمایش داده بشه
دوست عزيز اولا اين موضوع مربوط به تالار ASP است نه اينجا
بعدشم توي ASP ما چيزي به عنوان TextChange براي تكست باكس نداريم و اين رويداد در واقع همون رويداد Leave است. براي كاري كه ميخوايد انجام بديد بايد به سراغ JavaScript بريد.
در كل براي پيداه سازي AJAX بهتره JavaScript رو ياد بگيريد تا اينكه بخوايد با يك UpdatePanel كار كنيد. قابليتهايي كه در اختيارتون ميذاره قابل قياس با ابزارهاي VS نيست.
موفق باشيد.