PDA

View Full Version : سوال: حذف از grid view



amin_elahi
سه شنبه 01 اردیبهشت 1388, 14:07 عصر
با سلام
من میخوام واسه grid view قابلیت delete بزارم ولی نمی دونم چطور
سوال اینکه حتما باید با کد انجام بشه ؟
اگه می شه یه مثال واسم بزارید
تاپیک آقای بهرام راد هم خوندم ولی نتونستم ازش استفاده کنم:ناراحت:
لطفا زود جواب بدید ممنون

Saber_Fatholahi
سه شنبه 01 اردیبهشت 1388, 18:41 عصر
دوست من آقای بهروز راد
عزیز من یه پروژه گذاشتم توی سایت لینکش توی امضام هست همه این کارایی ابتدایی توش انجام دادم دانلود کن امیدوارم به کارت بیاد
موفق باشی

milade
سه شنبه 01 اردیبهشت 1388, 22:22 عصر
سلام

تاپيک آقاي بهرام راد هم خوندم ولي نتونستم ازش استفاده کنم
اهان ! فکر کنم منظورتون استاد بهروز راد بود :)
شما به قسمت ويژگي Grid بريد و EnableDelete (يا يه همچين چيزي ) رو True کنيد
يا به Source بريد و اين CommandField رو اد کنيد :

<Columns>

<asp:CommandField DeleteText="حــذف" ShowDeleteButton="True" />
</Columns>

توجه کنيد که براي اينکه بتونيد ايتمي رو حذف کنيد در اون ويزارد ساخت Grid بايد Delete رو تيک ميزديد يا به عبارتي SqlDataSource گريد DeleteCommand رو داشته باشه
(به علت عدم دسترسي به Vs تمام راهنمايي ها حدودي بود ! )
موفق باشيد !

iman_22a
سه شنبه 01 اردیبهشت 1388, 23:11 عصر
با سلام
من میخوام واسه grid view قابلیت delete بزارم ولی نمی دونم چطور
سوال اینکه حتما باید با کد انجام بشه ؟
اگه می شه یه مثال واسم بزارید
تاپیک آقای بهرام راد هم خوندم ولی نتونستم ازش استفاده کنم:ناراحت:
لطفا زود جواب بدید ممنون

دستکم 2 راه داره :

1- به کمک Delete خود گریدویو که با فعال کردن خاصیت Enable delete و اضافه کردن دکمه مخصوص Delete به گریدویو و Delete Command دیتاسورس گریدویو (که کوئری Delete از دیتاسورس را فرا می خونه) انجام میشه .

2- به وسیله اضاف کردن یک Template Field و یک LinkButton دلخواه (که یه Command Argument و Command name) به گرید ویو و کنترل رویداد RowDataCommand گریدویو و و نوشتن کد مربوطه انجام میشه .

saeed razaee
چهارشنبه 02 اردیبهشت 1388, 08:03 صبح
اتصال به پايگاه داده SQL

1- استفاده از فضاي نام



using System.Data.SqlClient;

نام پايگاه داده Sample1
نام جدول در پايگاه داده Table1
نام فيلدها در جدول ، دو فيلد با نام ID,Name
استفاده از grid view جهت نمايش اطلاعات با نام grdTable1
استفاده از دو textbox جهت درج اطلاعات با نام هاي txtID و txtName
استفاده از سه Button جهت حذف ، ويرايش و ذخيره اطلاعات با نامهاي Del و Edit و Insert
استفاده از يك Button جهت برگشت به صفحه اصلي با نام Button1

2-كدهاي اتصال به پايگاه داده


namespace simpledbweb
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Fill();
}
public void Fill()
{
SqlConnection ObjConnection = new SqlConnection("Data Source=Localhost;Initial Catalog=Sample1;Integrated Security=True");
SqlDataAdapter ObjDataAdapter = new SqlDataAdapter("Select * From Table1", ObjConnection);
DataSet ObjDataSet = new DataSet();
ObjDataAdapter.Fill(ObjDataSet, "Table1");
grdTable1.DataSource = ObjDataSet;
grdTable1.DataBind();
ObjDataAdapter = null;
ObjConnection = null;

}

3-كدهائي براي اضافه كردن اطلاعات به جدولي در پايگاه داده


protected void Insert_Click(object sender, EventArgs e)
{
SqlConnection ObjConnection = new SqlConnection("Data Source=Localhost;Initial Catalog=Sample1;Integrated Security=True");
SqlCommand ObjCommand = new SqlCommand("Insert into Table1 (ID,Name) Values(@ID,@Name)", ObjConnection);
ObjCommand.Parameters.AddWithValue("@ID", txtID.Text);
ObjCommand.Parameters.AddWithValue("@Name", txtName.Text);
ObjConnection.Open();
ObjCommand.ExecuteNonQuery();
txtID.Text = null;
txtName.Text = null;
ObjConnection.Close();
Fill();

}


4-كدهائي براي حذف اطلاعاتي از جدولي در پايگاه داده


protected void Del_Click(object sender, EventArgs e)
{
SqlConnection ObjConnection = new SqlConnection("Data Source=Localhost;Initial Catalog=Sample1;Integrated Security=True");
SqlCommand ObjCommand = new SqlCommand("Delete From Table1 Where ID=@ID;", ObjConnection);
ObjCommand.Parameters.AddWithValue("@ID", txtID.Text);
ObjConnection.Open();
ObjCommand.ExecuteNonQuery();
txtID.Text = null;
txtName.Text = null;
ObjConnection.Close();
Fill();



}
5-كدهائي جهت ويرايش اطلاعات در جدولي در پايگاه داده


protected void Edit_Click(object sender, EventArgs e)
{
SqlConnection ObjConnection = new SqlConnection("Data Source=Localhost;Initial Catalog=Sample1;Integrated Security=True");
SqlCommand ObjCommand = new SqlCommand("Update Table1 Set Name=@Name Where ID=@ID;", ObjConnection);
ObjCommand.Parameters.AddWithValue("@ID", txtID.Text);
ObjCommand.Parameters.AddWithValue("@Name", txtName.Text);
ObjConnection.Open();
ObjCommand.ExecuteNonQuery();
txtID.Text = null;
txtName.Text = null;
ObjConnection.Close();
Fill();

}






6- خاصيت Page size ، Grid viewرو به 5 تغيير داده ام که در هر صفحه از grid view، 5رکورد نمايش داده شود و براي اينكه با كليك بر روي شماره صفحه در پايين grid view بتوانم بين صفحات حركت كنم در رويدارد PageIndexChanging دابل كليك كرده ام و كد زير را نوشته ام .

protected void grdTable1_PageIndexChanging1(object sender, GridViewPageEventArgs e)
{
grdTable1.PageIndex = e.NewPageIndex;
grdTable1.DataBind();

}






7-فارسي كردن هدر GridView

براي فارسي كردن هدر ستونها در GridView به صورت زير عمل كردم و قبل از انتخاب جدول فيلدهاي آن را نام بردم و عنوان فارسي هر فيلد را جلوي آن در كروشه نوشتم.


SqlDataAdapter ObjDataAdapter = new SqlDataAdapter("Select ID [كد], Name [نام]From Table1", ObjConnection);

8-انتخاب يك سطر از GridView و نمايش اطلاعات سطر انتخابي در تكس باكسهاي بالا

براي اين كار مي توانيم در رويداد SelectedIndexChanged كدهاي زير را بنويسيم و قبل از آن يك باتن براي Select هر سطر GridView ايجاد كنيم


protected void grdTable1_SelectedIndexChanged(object sender, EventArgs e)
{
txtID.Text = grdTable1.SelectedRow.Cells[1].Text.ToString();
txtName.Text = grdTable1.SelectedRow.Cells[2].Text.ToString();
Del.Visible = true;
Edit.Visible = true;



}

9-نمايش يك باتن براي انتخاب سطر در GridView

براي اين كار يك ستون به GridView اضافه مي كنيم يا از طريق كد نويسي html به صورت زير
<Columns>

<asp:CommandField HeaderText="انتخاب" InsertText="" SelectText="انتخاب"
ShowSelectButton="True" />

</Columns>
و يا در قسمت مشخصات GridView باكس Auto General select Button را true قرار مي دهيم و باتن انتخاب اضافه مي شود .

10-پنهان بودن Button هاي حذف و ويرايش در شرايط عادي و نمايش آنها بعد از انتخاب يك سطر از GridView و همچنين باتن كنسل

براي Button كنسل يك باتن به فرم اضافه مي كنيم و كدهاي ذيل را در آن مي نويسيم در حقيقت با اين كار تكس باكسها را خالي مي كنيم.

protected void btncan_Click(object sender, EventArgs e)
{
SqlConnection ObjConnection = new SqlConnection("Data Source=Localhost;Initial Catalog=Sample1;Integrated Security=True");
ObjConnection.Open();
txtID.Text = null;
txtName.Text = null;
ObjConnection.Close();
Del.Visible = false;
Edit.Visible = false;
Fill();

}
براي پنهان شدن Button هاي حذف و ويرايش آمدم visible آنها را false كردم و پنهان شدند و موقع انتخاب يك سطر از GridView آمدم visible آنها را true كردم و همچين موقع انتخاب سطري از GridView با نماش اطلاعات سطر انتخابي در باكسها براي Button كنسل نيز مجدداً visible باتنهاي حذف و ويرايش را false كردم و درست عمل مي كند.

amin_elahi
چهارشنبه 02 اردیبهشت 1388, 16:23 عصر
سلام ممنونم ولی سوال هیچ کدوم جواب سوال من نبود . من 1 gridview دارم اطلاعات از sql می خونم grid پر می کنم دکمه delete هم میزارم. ولی نمی دونم داخل delete query چه query بنوسیم تا وقتی دکمه delete زده می شه اطلاعات مربوط به همون رکورد رو حذف کنه من جلو دستور where چه شرطی بنوسیم که رکورد مورد نظر رو پاک کنه. یا چه جوری مقدار 1 فلید از gridview برگردونم. اگه 1 مثال بزارید ممنون میشم

saeed razaee
چهارشنبه 02 اردیبهشت 1388, 16:56 عصر
با سلام
دوست عزيز قسمت 4 را نگاه گنيد دقيقاً چيزي است كه شما مي خواهيد.در حقيقت اول با انتخاب سطر grid view و نمايش آن در تكس باكسهاي بالا شما مي توانيد آن را حذف و يا ويرايش كنيد.لطفا بيشتر دقت نمائيد.