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

تنسيق الجدول وعمل تباعد بين الخلايا

مغلق
بدأه basharss في 26 أبريل 2007 · 4 رد · 1,267 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اقوم بعملية عرض بيانات على جدول في ال asp.net

الكود هو كالتالي :

Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)

	  '  كود تعبئة للجدول بالبيانات
		Dim MyConnt As System.Data.OleDb.OleDbConnection
		MyConnt = New System.Data.OleDb.OleDbConnection(ConfigurationManager.ConnectionStrings("PGIConnectionString").ConnectionString)
		Dim ds1 As New System.Data.DataSet
		Dim mycommand As New System.Data.OleDb.OleDbDataAdapter("select * From [BudgetDetails]", MyConnt)
		'mycommand.SelectCommand.Parameters.Add("@UserParm", System.Data.OleDb.OleDbType.LongVarChar).Value = "00" 'selectusername
		mycommand.Fill(ds1, "BDd")

		If ds1.Tables("BDd").Rows.Count > 0 Then
			'Dim numrows As Int32
			'Dim numcells As Int32
			Dim x As Int32
			'Dim y As Int32
			Dim r As TableRow
			Dim c As TableCell
			Table1.CellSpacing = 2
			Dim i As Int32
			For i = 0 To ds1.Tables("BDd").Rows.Count - 1
				Dim qs As String = ds1.Tables("BDd").Rows(i).Item("Q1")

				r = New TableRow
				r.VerticalAlign = VerticalAlign.Middle
				c = New TableCell
				For x = 0 To 12
					c.Controls.Add(New LiteralControl(qs))
					r.Cells.Add(c)
				Next
				Table1.Rows.Add(r)

			Next

		End If

		MyConnt = Nothing
 End Sub

الجدول مصمم كما هو موضح ادناه :

		<asp:Table ID="Table1" runat="server" Height="88px" Style="z-index: 144; left: 25px;
			position: absolute; top: 578px" Width="755px" BorderStyle="Solid" BorderWidth="2px" CellPadding="2" CellSpacing="2" HorizontalAlign="Center" BorderColor="#404040" GridLines="Both">
		</asp:Table>

ولكن المشكلة ان النتائج تكون متلاصقة ، اي ان الحقول متلاصقة ولا يوجد اي فعالية لل CellSpacing او ال CellPadding

لماذا هي غير مفعلة وكيف لي ان اباعد بين الحقول .

كل الشكر وبارك الله بكم

logosite.gif
#2

شكرا جزيلا اخي Xlance على الاهتمام والرد

ولكن ما الفائدة اذا من ال table الخاصة بال aspx

ارجوا ان توضح اخي اكثر كيف يمكن ان استخدم جدول html واضيف له البيانات من خلال palceholder

logosite.gif
#3

يا جماعة الا يوجد احد يمكنه المساعدة ام ان الجميع غير راغب في مساعدتي .

على كل حال انا حاولت ان استغني عن طريقة عرض البيانات على شكل جدول ، واجرب جلب البيانات ثم ربطها ب ال DataGrid مثل الكود ادناه :

	

Function LinesShow() As Boolean   '  لجلب بيانات من جدول الميزانية حسب اسم المشروع المخزن في دروب داون لست1

		Dim MyConnt As System.Data.OleDb.OleDbConnection
		MyConnt = New System.Data.OleDb.OleDbConnection(ConfigurationManager.ConnectionStrings("PGIConnectionString").ConnectionString)
		Dim ds1 As New System.Data.DataSet

 Dim mycommand As New System.Data.OleDb.OleDbDataAdapter("select BDNO,RefrenceNo,LastUpdate,MojorLineItem,LineItemNo,MainBudget,Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q10,Q11,Q12 From [BudgetDetails] Where RefrenceNo = ? and MainBudget = ?", MyConnt)

 mycommand.SelectCommand.Parameters.Add("@Parm", System.Data.OleDb.OleDbType.LongVarChar).Value = DropDownList1.SelectedValue.ToString

		mycommand.SelectCommand.Parameters.Add("@MB", System.Data.OleDb.OleDbType.Integer).Value = CType(FormView1.FindControl("BudgetNoLabel"), Label).Text

			 mycommand.Fill(ds1, "BDd")

		GridView1.DataSource = ds1.Tables("BDd")
		GridView1.DataBind()

		ds1.Dispose()
		MyConnt = Nothing
		Return True
 End Function

ونجح ذلك فعلا في عرض البيانات التي اريدها داخل الغريد فيو ،ولكن ليس كل الحقول اريد ان يعرضها ، يعني سطر/صف يظهر به التاريخ مثلا والسطر الاخر لا يظهر به ذلك، ثم ان هناك حقول مرتبطة بجداول اخرى في الجدول اعلاه ، اي ان الحقل يحتوي رقم كمفتاح في جدول اخر ، اي انه في الجريد فيو تظهر بعض الحقول بالرقم فقط / المفتاح دون ربط .

كما ان عرض البيانات يتطلب بعض الاجرائات عليها ، فبعضها يجب ان يحول الى لينك ليعالج بصفحة اخرى، ولا يمكنني ذلك من خلال الجريد فيو بل من خلال جدول.

نعود للجدول الا يمكن لي عمل جدول والتحكم في بياناته واظهارها كما اريد ومكان ظهورة ؟

اعتقد انه الحل الوحيد الممكن .

لكن لماذا لا يمكننا عمل تباعد بين الخلايا والصفوف في الجدول وتكون الخلايا متلاصقة ، هل هذا منظر مقبول ، كما انه البًُردرborder للجدول يكون حوله ظاهر ولا يقوم بتقسيم خلاياها مهما قمنا بتسميكه فهو لا يظهر .

هل ممكن ان تساعدوني في معرفة كيفية تنسيق الجدول المرفوع في المشاركة الاولى ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

اتمنى ان لا تبخلوا علي في المساعدة

تم تعديل هذه المشاركة بواسطة basharss في 9 مايو 2007 في 15:31

logosite.gif
#4

أخي العزيز جرب حذف ال style حيث انه يحتوي على خاصيه ال position وقيمتها absolute وهذه ربما قد تسبب لك نتائج غير متوقع في جدوللك

Style="z-index: 144; left: 25px;
			position: absolute; top: 578px" Width="755px"

واذا لم تنجح هذه الخطوه قم بتشغيل الصفحه ثم اذهب الى edit> view sorce وضع كود ال html لعلنا نستطيع معرفه اين الخطأ في ترجمه الصفحه.

#5

شكرا جزيلا اخ مقاوم على الرد والاهتمام .

لقد وجدت المشكلة رغم انها بسيطه فأنني استغرب انها فاتتنا جميعا .

المشكلة ان c = New TableCell

يجب ان تكون داخل جملة ال for الثانية(الداخلية) وليس خارجها .

يعني :

 '  كود تعبئة للجدول بالبيانات
		Dim MyConnt As System.Data.OleDb.OleDbConnection
		MyConnt = New System.Data.OleDb.OleDbConnection(ConfigurationManager.ConnectionStrings("PGIConnectionString").ConnectionString)
		Dim ds1 As New System.Data.DataSet
		Dim mycommand As New System.Data.OleDb.OleDbDataAdapter("select * From [BudgetDetails]", MyConnt)
		'mycommand.SelectCommand.Parameters.Add("@UserParm", System.Data.OleDb.OleDbType.LongVarChar).Value = "00" 'selectusername

			 mycommand.Fill(ds1, "BDd")

		If ds1.Tables("BDd").Rows.Count > 0 Then

			Dim x As Int32
			Dim r As TableRow
			Dim c As TableCell
			Table1.CellSpacing = 2
			Dim i As Int32

			For i = 0 To ds1.Tables("BDd").Rows.Count - 1

										   Dim qs As String = ds1.Tables("BDd").Rows(i).Item("Q1")

				r = New TableRow
				r.VerticalAlign = VerticalAlign.Middle


				   For x = 0 To 12

															c = New TableCell									  c.Controls.Add(New LiteralControl(qs))
					r.Cells.Add(c)
				   Next

					 Table1.Rows.Add(r)

			Next

		End If

		MyConnt = Nothing

حقيقة لقد اخذت مني وقت طويل وانا اجرب يمين وشمال وطرق بديلة واخرى ، وبالاخر طلعت شغلتها بسيطة .

المهم الحمد لله انني تمكنت من حل هذه المشكلة ، وهذه هي البرمجة لما تيس بتييس

تم تعديل هذه المشاركة بواسطة basharss في 10 مايو 2007 في 16:12

logosite.gif

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

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