PDA

View Full Version : مبتدی: گرفتن ID سطري از گريدويو كه كاربر قصد حذف آنرا دارد



federrer
سه شنبه 29 آذر 1390, 22:30 عصر
با سلام

من گريديو دارم كه ركوردهاي يك جدول رو نشان ميدهد و براي امكان حذف هر ركورد هم هست.
ميخوام از ID سطري كه كاربر دكمه حذف آنرا ميزند، در كوئري ديگري استفاده كنم.

به عبارت ديگه ، ID سطري كه كاربر دكمه حذفش رو ميزنه به دردم ميخوره . ميتونيد با يه كد توضيح بديد؟ مرسي

crazy_1892
چهارشنبه 30 آذر 1390, 01:33 صبح
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
try
{

{ Convert.ToInt32(e.CommandArgument));

}
}
}

fakhravari
چهارشنبه 30 آذر 1390, 02:58 صبح
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="fCodeProducts" DataSourceID="SqlDataSource1"
onrowcommand="GridView1_RowCommand">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="Button1" CommandArgument='<%# Eval("fCodeProducts") %>' runat="server" Text="Button" />
<%# Eval("fCodeProducts")%>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>


protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{

// try
// {

string id = (e.CommandArgument).ToString();



SqlConnection con1 = new SqlConnection(ConfigurationManager.ConnectionStrin gs["DBOnlineShopConnectionString1"].ConnectionString);
con1.Open();
SqlCommand cmd1 = new SqlCommand(Sqldelete, con1);
cmd1.CommandType = CommandType.Text;
cmd1.Parameters.Add("@fCodeProducts", SqlDbType.Int).Value = Int32.Parse(id);
cmd1.ExecuteNonQuery();
con1.Close();
lasteror = "اطلاعات حذف شد";
Response.Write(lasteror);


// }
// catch
// {
// lasteror = "اشکال در حذف اطلاعات";
// Response.Write(lasteror);
// }
}

federrer
چهارشنبه 30 آذر 1390, 19:04 عصر
درچند مورد سوال دارم :

مهمترینش اینه که میتونم از string id = (e.CommandArgument).ToString(); در رویداد
GridView1_RowDeleting استفاده کنم یا حتما باید در
GridView1_RowCommand باشه؟؟

قصدم اینه که عملیات حذف در رویداد GridView1_RowDeleting انجام بشه. یکی از دوستان کد زیر رو نوشته:




string strIDs = "";
GridViewRow gvRow = GView.Rows[e.RowIndex];
strIDs += GView.DataKeys[gvRow.RowIndex].Value + ",";



اگه زحمت نمیشه این 3 خط رو برام ترجمه کنید . الان چی رو ریخته در متغیر strIDs ???

fakhravari
چهارشنبه 30 آذر 1390, 19:39 عصر
با سلام
بله روش من از دیتاسورس استفاده نکردم.
ولی شما چون از دیتاسورس دارید استفاده میکندید میتوانید از این روش ها استفاده کنید . ولی فکر کنم فرقی نداره :متفکر::متفکر:
چون در هر قالب مثال RowCommand و RowDeleting و RowDataBound
هر کدوم برای دستوراتی به کار میرن.
RowDataBound = برای دستکاری داده مثال اون .. اخر ادامه مطلب و....غیره.
RowCommand اجرای هر دستور sql
RowDeleting = فکر کنم id سر میگره احتمال زیاد

federrer
چهارشنبه 30 آذر 1390, 19:54 عصر
ما در خصوصيت DataKeyNames يك گريدويو چه چيزي رو مشخص ميكينم ؟؟ بايد اسم فيلد شاخص رو بهش بديم ؟؟

همين الان تست كردم . در رويداد RowDeleting بايد پارامتر GridViewDeleteEventArgs e رو داشته باشيم و در RowCommand بايد از GridViewCommandEventArgs e استفاده كنيم .
من نميتونم از e.CommandArgument در رويداد RowِِDeleting استفاده كنم چون پارامتر e از نوع
GridViewDeleteEventArgs هست .

طبق كدي كه شما براي رويداد RowCommand نوشتيد اگه ما دكمه حذف رو بزنيم . ركورد مورد نظر از گريدويو هم حذف ميشه يا فقط از ديتابيس پاك ميشه؟؟

moslem.hady
چهارشنبه 30 آذر 1390, 20:43 عصر
سلام
ویرایش(یا حذف) سطرهای انتخاب شده توسط کاربر در گریدویو(gridview) (http://programmer.persianblog.ir/post/24/%D9%88%DB%8C%D8%B1%D8%A7%DB%8C%D8%B4%28%DB%8C%D8%A 7%20%D8%AD%D8%B0%D9%81%29%20%D8%B3%D8%B7%D8%B1%D9% 87%D8%A7%DB%8C%20%D8%A7%D9%86%D8%AA%D8%AE%D8%A7%D8 %A8%20%D8%B4%D8%AF%D9%87%20%D8%AA%D9%88%D8%B3%D8%B 7%20%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%20%D8%AF%D8%B1% 20%DA%AF%D8%B1%DB%8C%D8%AF%D9%88%DB%8C%D9%88%28gri dview%29)

federrer
چهارشنبه 30 آذر 1390, 21:04 عصر
بهتره هدفم از "گرفتن ID سطري از گريدويو كه كاربر قصد حذف آنرا دارد" رو واضح تر بگم.

ما در گريدويو اطلاعات بعضي از فيلد هاي يك جدول رو نشون ميديم.

ميخوام زمانيكه دكمه حذف يك ركورد رو كليك ميكنيم :

1 - ID ركورد مورد نظر رو در جايي ذخيره كنم و از جدول و گريديو حذف بشه
2- براساس ID سطري كه حذف كرديم ، در جدول ديگر يكسري آپديت ها انجام بشه.

براي مورد 1 مشكلي نيست و با زدن دكمه حذف ركورد مورد نظر از جدول و گريديو حذف ميشه

اما براي مورد دوم من نياز دارم كه حتما ID سطر حذف شده رو ميخوام

fakhravari
چهارشنبه 30 آذر 1390, 21:59 عصر
ببنید با دستورات بالا کد id حذف میشود خوب شما
public string id;
string id = (e.CommandArgument).ToString();
بعد میتوانید از ایدی استفاده کرد

ehsan10011
شنبه 08 بهمن 1390, 11:10 صبح
یه سر به سایت زیر بزن بد نیست
http://www.how2learnasp.net/article.aspx?code=f05c6d6f-4350-4efb-84b5-6e7dca3976c4