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

مشكلة في Checkbox في Gridview

بدأه ubd17 في 13 أبريل 2008 · 6 رد · 1,164 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته ..

عندي مشكلة في التشك بوكس داخل الجريد فيو ..

المشكلة عبارة عن رسالة الخطأ هذه :

اقتباس
Index was out of range. Must be non-negative and less than the size of the collection.

Parameter name: index

وهذا الكود :

		For c = 0 To grvLen - 1
			chkbox = grvPrdByType.Rows(c).FindControl("CheckBox1" )
			If chkbox.Checked = True Then
.
.
.
.
.
		   End if 
Next

بالتحديد الخطأ في هذا السطر :

  chkbox = grvPrdByType.Rows(c).FindControl("CheckBox" )
#2

على مااعتقد عندك مشكلة بمجال الحلقة

For c = 1 To grvLen - 1

اول شي لازم يبدأ الـC من الواحد لانو الصفر هو الـheader وبعدين تأكد من قيمة grvLen

بس هون في ملاحظة انت مفعل الـpaging للـgrid !!!!!!!!!

-----------------------------------------------------------------------------------------------------------------------------





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

#3

السلام ..

اقتباس
اول شي لازم يبدأ الـC من الواحد لانو الصفر هو الـheader وبعدين تأكد من قيمة grvLen

تأكدت منه بالبريك بوينت : الهيدر غير محسوب ( يعني صح يبدأ من صفر ) ..

وكذلك grvLen أوكيه نفس عدد الصفوف ..

اقتباس
بس هون في ملاحظة انت مفعل الـpaging للـgrid !!!!!!!!!

لا مش عامل paging .

تم تعديل هذه المشاركة بواسطة ubd17 في 13 أبريل 2008 في 14:21

#4
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
	<title>Untitled Page</title>
</head>
<body>
	<form id="form1" runat="server">
	<div>
		<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" ShowHeader="False" Width="353px">
			<Columns>
				<asp:BoundField DataField="text" />
				<asp:BoundField DataField="value" />
				<asp:TemplateField>
					<ItemTemplate>
						<asp:CheckBox ID="CheckBox1" runat="server" />
					</ItemTemplate>
				</asp:TemplateField>
			</Columns>
		</asp:GridView>
		<asp:Button ID="btnGetSelected" runat="server" Text="Get Selected" /><br />
		<asp:ListBox ID="ListBox1" runat="server" Width="112px"></asp:ListBox> </div>
	</form>
</body>
</html>

Partial Class _Default
	Inherits System.Web.UI.Page

	Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
		If Not IsPostBack Then
			Dim array As ArrayList = New ArrayList()

			For index As Integer = 1 To 10
				array.Add(New ListItem("mohummad", "summakiea"))
			Next

			GridView1.DataSource = array
			GridView1.DataBind()
		End If
	End Sub

	Protected Sub btnGetSelected_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGetSelected.Click
		ListBox1.Items.Clear()
		For index As Integer = 0 To GridView1.Rows.Count - 1
			Dim checkb As CheckBox = GridView1.Rows(index).FindControl("CheckBox1")
			If checkb.Checked Then
				ListBox1.Items.Add(index)
			End If
		Next
		ListBox1.DataBind()

	End Sub
End Class

WebSite5.zip

post-127137-1208086646_thumb.jpg

تم تعديل هذه المشاركة بواسطة محمد سماقية في 13 أبريل 2008 في 14:37

-----------------------------------------------------------------------------------------------------------------------------





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

#5

السلام عليكم ورحمة الله ...

تسلم عزيزي : محمد على هذا الرد ..

أنا عامل قبل كذا هذا الكود في صفحات أخرى أكثر من مرة ..

وشغال تمام التمام ..

بس ما أدري ليش في هذا الجريد مش زابط ..

والمشكلة مثل ما ذكرت في الرسالة ..

#6

السلام عليكم

اعمل Debug على الكود وانظر الى قيمة C عند حدوث الخطأ فهل هي عند البداية ام عند النهاية لان معنى الرسالة ان رقم الصف المحدد اكبر او اقل من عدد الصفوف

#7

يمكنك الاعتماد على نوع سطر GridView حيث تكون قيمة الخاصية RowType تساوي DataRow :

For Each row As GridViewRow In GridView1.Rows
	If row.RowType = DataControlRowType.DataRow Then
do something	
	End If
Next

تم تعديل هذه المشاركة بواسطة madani في 14 أبريل 2008 في 09:35

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