الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

search in DataGrid

مغلق
بدأه Ra-1 في 10 مايو 2005 · 4 رد · 1,174 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هل هناك طريقة تجعل المستخدم للdatagrid يعمل بحث لاسم معين ؟

مثلا يدخل اسم شخص في textbox وعند الضغط على زر تظهر الأسطر rows التي تتضمن هذا الاسم فقط ومن ثم يعدل عليه update بالطريقة العادية ...

ما أحتاجه فقط جزئية البحث إن كانت ممكنة ...

وجزاكم الله كل خير :)

... Programmer Girl ...
#2

الموضوع سهل جدا

اعملي Query جديد يبحث عن اسم هذا الشخص في ال DB او حتى داخل ال DataSet ثم اعرضي النتيجة مرة اخرى

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#3

السلام عليكم ...

قمت بعمل مثال يقوم بعرض DataGrid بها عدد من الصفوف Rows و تعرض فقط الإسم الأخير LastName و الإسم الأول FirstName لموظفين و هناك مربع نص يستخدم للبحث و عند الضغط على زر البحث سوف يتم عرض جميع الأسماء التي تتناسب مع مفتاح البحث "النتائج" و بجانب كل صف يوجد زر يقوم بتعديل المحتوى ........

بداية ها هي ال DataGrid و زر البحث :

<asp:datagrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 40px; POSITION: absolute; TOP: 24px" runat="server"
    AutoGenerateColumns="False">
    <Columns>
   	 <asp:ButtonColumn CommandName="edit" HeaderText="Edit Option" Text="Edit Row!" Visible="False" />
   	 <asp:TemplateColumn>
      <ItemTemplate>
     	 <%#DataBinder.Eval(Container.DataItem,"LastName")%>
     	  
     	 <%#DataBinder.Eval(Container.DataItem,"FirstName")%>
      </ItemTemplate>
      <EditItemTemplate>
     	 <asp:TextBox ID="nLastName" Runat=server Text='<%#DataBinder.Eval(Container.DataItem,"LastName")%>'/>
     	  
     	 <asp:TextBox ID="nFirstName" Runat=server Text='<%#DataBinder.Eval(Container.DataItem,"FirstName")%>'/>
     	 <asp:Button CommandName="update" Text="Update Row!" />
      </EditItemTemplate>
   	 </asp:TemplateColumn>
    </Columns>
 	 </asp:datagrid><asp:textbox id="key" style="Z-INDEX: 102; LEFT: 560px; POSITION: absolute; TOP: 88px" runat="server"></asp:textbox><asp:button id="Button1" style="Z-INDEX: 103; LEFT: 592px; POSITION: absolute; TOP: 128px" runat="server"
    Text="Button">

الان نأتي للمهم و هي صفحة الأكواد و التي بها المطلوب :

public class WebForm1 : System.Web.UI.Page
	{
  protected System.Web.UI.WebControls.DataGrid DataGrid1;
  protected System.Web.UI.WebControls.TextBox key;
  protected System.Web.UI.WebControls.Button Button1;
  private DataSet ds = new DataSet();
  private string SQL;
  private void bindDg(string SQL)
  {
    SqlConnection cn = new SqlConnection("server=(local);Database=Northwind;trusted_connection=true;");
 	 SqlDataAdapter da=new SqlDataAdapter(SQL,cn);
 	 da.Fill(ds);
 	 DataGrid1.DataSource=ds.Tables[0].DefaultView;
 	 DataGrid1.DataBind();
 	 
  }
  private void Page_Load(object sender, System.EventArgs e)
  {
 	 if(!Page.IsPostBack)
 	 {
                   SQL="Select LastName,FirstName from Employees";
 	 bindDg(SQL);	
 	 }
  }



  private void Button1_Click(object sender, System.EventArgs e)
  {
   SQL="Select LastName,FirstName From Employees where LastName Like '%" +
    key.Text + "%' or FirstName Like '%" + key.Text + "%'";
 	 Cache["mySQL"]=SQL;
 	 bindDg(SQL);
 	 DataGrid1.Columns[0].Visible=true;
  }
  

  private void DataGrid1_DoIt(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  {
 	 SQL=Cache["mySQL"].ToString();
 	 DataGrid1.EditItemIndex=e.Item.ItemIndex;
 	 bindDg(SQL);
  }
  
	}

أعتقد بأني قمت بتجربة المثال و الكود واضح و على الأخ السائل فهم المحتوى لأنه بسيط جدا و لا داعي لكثرة الشرح ..

بالتوفيق :)

1

You can fly while you can touch the sky

#4

إذا كنتي تستخدمي ال Dataset لعملية التعديل فيمكنك إستخدام Select method الخاصة ب DataTable لان البيانات سوف تكون موجودة في الذاكرة وليس هناك حاجة لعمل استفسار جديد لكل عملية بحث

لا تحزن:

إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.

لا تحزن:

فأنت تشرب الماء الزلال، و تستنشق الهواء الطلق، و تمشي على قدميك معافى، و تنام ليلك آمنا.

#5

الكود الذي كتبته به فكرة و هي ظهور البيانات داخل ال DataGrid بدون أزرار للتعديل و عند البحث تقوم نفس ال DataGrid بعمل فلترة للصفوف الموجودة داخل ال DataSet و تقوم بربطها مع الأداة من جديد و يظهر بجانب كل صف زر للتعديل و عند الضغط عليه تظهر الأسماء على شكل TextBoxes و بها القيم و هي قابلة للتعديل و بجانبها زر لحفظ التعديلات و أعتقد أن دالة التعديل سهلة و على الأخت كتابتها ..

فكرة ال SQL الجديد هي إظهار البيانات مرة أخرى في نفس ال DataGrid لكن بعد عملية البحث :)

You can fly while you can touch the sky

هذا الموضوع مغلق.

مواضيع مشابهة