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

Checkbox&grid View

بدأه dooody في 6 أبريل 2009 · 3 رد · 657 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

احتاااج مساعدة ضرورية من اصحاااب الخبرة

grid viewانا عاملة

CheckBox التي تحتوي على عمود من

source والكود التالي الموجود في

<asp:TemplateField>

<ItemTemplate>

<asp:CheckBox ID="CheckBox1" runat="server" />

</ItemTemplate>

</asp:TemplateField

>

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

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

وهذا هو الكود

protected void Button1_Click(object sender, EventArgs e)

{

foreach (GridViewRow gr in GridView1.Rows)

{

CheckBox cb;

cb = (CheckBox)gr.FindControl("CheckBox1");

if (cb.Checked)

{

// TextBox1.Text = (string)GridView1.DataKeys.Item(GridViewRow.RowIndex).Value;

TextBox1.Text = "YES";هذا فقط لتاكد منه دخل الif

}

else

TextBox1.Text = "NO";

}

}

runالمشكلة انه عندما اعمل

check box واختار الصفوف ب

"NO"TextBox واضغط على الزر يظهر في ال

if وهذا يعني انه لا يحقق جملة ال

Drop Downكذالك اذا كان يوجد عمود يحتوي على

استطعت اضافتها ولكن لم استطع ربطها بجدول معين وكذلك اذا تم كذلك

كيف استطيع معرفة القيمة المختارة

لا اعرف المشكلة ارجو المساعدة في اقرب وقت ممكن وان شاء الله تمكنت من الشرح بوضوح

مع العلم استخدم C#

studio visual 2005/2008

#2

السلام عليكم

بالنسبة للمشكلة الاولى :

القيمة في مربع النص تعتمد على اخر صف في الجريد فيو وهذا هو الخطأ لذا عليك باستخدام response.write او اي طريقة اخرى لاظهار جميع القيم .

بالنسبة للمشكلة الثانية :

استخدم TemplateField مثل الحالة الاولى واربط القائمة المنسدلة باداة ربط جديدة SQLdataSource وللحصول على القيمة المختارة ايضا مثل الحالة الاول باستخدام Findcontrol واستخدم الخاصية SelectedValue بدل Checked

#3

مشكوووووووور اخوي على الرد ولكن بالنسبة للمشكلة الاولى لم افهم ما تقصده ممكن تكتب لي الكود

اما بالنسبة للمشكلة الثانية

1-كيف اربطة بSQLDataSource

2-قد استخدمت الSelectedValue ولكن نفس المشكلة.ممكن توضح اكثر بالكود

ولك جزيل الشكر

#4
try this example for multiple delete

<script type="text/javascript">

	function SelectAll(id) {

		var frm = document.forms[0];

		for (i=0;i<frm.elements.length;i++) {

			if (frm.elements.type == "checkbox") {

				frm.elements.checked = document.getElementById(id).checked;

			}

		}

	}  

</script>

<!-- assuming that SqlDataSource1 is the datasource for my GridView -->

<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" Width="400px">

	<Columns>

		<asp:TemplateField>

			<AlternatingItemTemplate>

				<asp:CheckBox ID="CheckBox1" runat="server" />

			</AlternatingItemTemplate>

			<ItemTemplate>

				<asp:CheckBox ID="CheckBox1" runat="server" />

			</ItemTemplate>

			<HeaderTemplate>

				<asp:CheckBox ID="cbSelectAll" runat="server" Text="Select All" />

			</HeaderTemplate>

			<HeaderStyle HorizontalAlign="Left" />

			<ItemStyle HorizontalAlign="Left" />

		</asp:TemplateField>

	</Columns>

</asp:GridView>

protected void GridView1_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
 {

	if (e.Row.RowType == DataControlRowType.Header)
 {

		//adding an attribute for onclick event on the check box in the header 

		//and passing the ClientID of the Select All checkbox 

		((CheckBox)e.Row.FindControl("cbSelectAll")).Attributes.Add("onclick", "java script:SelectAll('" + ((CheckBox)e.Row.FindControl("cbSelectAll")).ClientID + "')");

	}

}

and to get checked row for delete with Delete button

foreach (GridViewRow row in GridView1.Rows)
		{
			CheckBox checkbox = (CheckBox)row.FindControl("cbxId");

			if (checkbox.Checked == true)
			{
				int Id = Convert.ToInt32(GridView1.DataKeys[row.RowIndex].Value);
			   // your delete method here

			}

		}

Yasser Zaid

Web Developer

My Blog

Telecome Egypt

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