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

مشكلة في كود

بدأه hemalotfy في 17 يناير 2011 · 6 رد · 521 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عملت موقع لجمع بيانات للراغبين في التبرع بالدم ولكن اريد اخفاء رقم موبايل الاناث عند البحث فوضعت هذا الكود لكن لا يعمل

 cn.Open()
        Cmd.Connection = cn
        Cmd.CommandType = Data.CommandType.Text
        Cmd.CommandText = "Select * from Info "

        Dr = Cmd.ExecuteReader
        Dr.Read()
        Dim X As String = Dr("Donor_Type")


        If X = ("انثى") Then
            Me.GridView1.Columns(5).Visible = False

        End If

        If Dr.HasRows = False Then
            ReslutsLable.Text = ("عفواً .. لا يوجد متبرعين في هذا الوقت")
            Dr.Close()
            Exit Sub
        End If

        Me.GridView1.DataSource = Dr
        Me.GridView1.DataBind()

تم تعديل هذه المشاركة بواسطة hemalotfy في 17 يناير 2011 في 00:57

#2

جرب طريقة اخرى وهي عند تحميل البيانات الى جريت فيو يقوم باخفاء بدال

Dim X As String = Dr("Donor_Type")

If X = ("انثى") Then

Me.GridView1.Columns(5).Visible = False

End If

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
  {
      if (e.Row.RowType == DataControlRowType.DataRow)
      {


 	  Lable lbl_phone = (Lable)e.Row.Cells[0].FindControl("lbl_phone");
          Lable lbl_type = (Lable)e.Row.Cells[0].FindControl("lbl_type");
          if (!string.IsNullOrEmpty(lbl_type.Text.ToString().Trim()))
          {
            if(lbl_type.ToString().Trim()=="انتى")
		{
		  lbl_phone.visable=false;
		}	
          }
      }
  }
#3

شكرا لك اخي الفاضل

لم افهم الكود

لو سمحت ممكن تشرحه بالغة الفيجوال او تعطيني طريقة اخرى؟

#4

للرفع للضرورة القصـــــــــــوى

#5

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

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
  {
}

بعدين تكتب داخل هذه الحدث

 if (e.Row.RowType == DataControlRowType.DataRow)
      {
          Lable lbl_phone = (Lable)e.Row.Cells[0].FindControl("lbl_phone"); // هنا للبحث عن ليبل اسمو تلفون حيث تكون انتا معرف داخل جريد فيو
          Lable lbl_type = (Lable)e.Row.Cells[0].FindControl("lbl_type");
          if (!string.IsNullOrEmpty(lbl_type.Text.ToString().Trim())) // هنا لفحص اذا كان حقل الجنس فارغ ما يعمل شي
          {
            if(lbl_type.ToString().Trim()=="انتى") //
                {
                  lbl_phone.visable=false;
                }       
          }
      }

اذا ما فهمتو او ما زبط معك يا ريت تحط كود html تبع جريد فيو عشان ازبطلك اياها

#6
DaIlYwAkE كتب:

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

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
  {
}

بعدين تكتب داخل هذه الحدث

 if (e.Row.RowType == DataControlRowType.DataRow)
      {
          Lable lbl_phone = (Lable)e.Row.Cells[0].FindControl("lbl_phone"); // هنا للبحث عن ليبل اسمو تلفون حيث تكون انتا معرف داخل جريد فيو
          Lable lbl_type = (Lable)e.Row.Cells[0].FindControl("lbl_type");
          if (!string.IsNullOrEmpty(lbl_type.Text.ToString().Trim())) // هنا لفحص اذا كان حقل الجنس فارغ ما يعمل شي
          {
            if(lbl_type.ToString().Trim()=="انتى") //
                {
                  lbl_phone.visable=false;
                }       
          }
      }

اذا ما فهمتو او ما زبط معك يا ريت تحط كود html تبع جريد فيو عشان ازبطلك اياها

شكرا لك اخي الفاضل على المتابعة

انا الان وصلت للحدث

Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound

لكن ما هو e

ماذا اضع مكانه عندي

#7

كأحد الطرق يمكن عمل ذلك من خلال ال template field وربطه مع تابع ويمكنك زيادة التعقيد ما تشاء

 	<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        	DataKeyNames="id" DataSourceID="SqlDataSource1" EnableModelValidation="True" 
        	Width="408px">
        	<Columns>
            	<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" 
                	ReadOnly="True" SortExpression="id" />
            	<asp:BoundField DataField="name" HeaderText="name" SortExpression="name" />
            	<asp:BoundField DataField="mobile" HeaderText="mobile" 
                	SortExpression="mobile" />
            	<asp:BoundField DataField="sex" HeaderText="sex" SortExpression="sex" />
            	<asp:TemplateField>
                	<ItemTemplate>
                    	<asp:Label ID="Label1" runat="server" Text='<%# mobilefilter(Eval("sex").ToString(),Eval("mobile").ToString()) %>'></asp:Label>
                	</ItemTemplate>
            	</asp:TemplateField>
        	</Columns>
    	</asp:GridView>

	protected  string mobilefilter(string sex,string mob)
	{
    	if (sex == "female")
    	{
        	mob = "الرقم شخصي";
    	}
    	return mob;
	}

In bad state

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