PDA

View Full Version : سوال: حذف اطلاعات از طریق پیغام نمایش سفارشی



beginner_programmer
یک شنبه 15 بهمن 1396, 00:45 صبح
سلام به همه دوستان و اساتید
من میخاستم موقعی که کاربر روی دکمه حذف یک رکورد کلیک میکنه ازش بپرسم که مطمئنی که میخای اطلاعات پاک بشه یا نه ؟
این کار رو ازطریق کد زیر همیشه انجام میدم :

<asp:ImageButton ID="btndelete" Width="40" Height="40" OnClientClick="return confirm('آیا از حذف این محصول اطمینان دارید ؟');"
CommandArgument='<%#Eval("sanid") %>' runat="server" ImageUrl="assets/images/actions/delete.png" ToolTip="حذف محصول" />

توی اینجا من کلید سطر رو از طریق CommandArgument پاس میدم و حذف انجام میشه و مشکلی نیست ...

ولی من میخام از پیغام های سفارشی این کار و انجام بدم ( با Sweet Alert )
من نمایش پیغام ساده با استفاده از sweetaler رو انجام میدم، مثلا بعد ثبت یک رکورد پیام میدم که با موفقیت ذخیره شد، مثل زیر :


<script type="text/javascript">
function Successalert() {
swal({
title: 'عملیات موفقیت آمیز :)',
text: 'سانس جدید با موفقیت ثبت شد.',
type: 'success',
button: "بستن",
});
}
</script>


و توی دکمه سمت سرور هم به این طریق این و فراخوانی میکنم (مثلا وقتی عملیات ذخیره سازی با موفقیت انجام شد) :


If cmd.ExecuteNonQuery Then
ScriptManager.RegisterStartupScript(Me, [GetType](), "Popup", "Successalert();", True)
GridView1.DataBind()
Else
ScriptManager.RegisterStartupScript(Me, [GetType](), "Popup", "erroralert();", True)
End If

تا اینجا هم مشکلی نیست!
ولی من میخام وقتی روی دکمه حذف کلیک کرد ازش بپرسم مطمئنی یا نه ؟
کد پلاگین sweetaler به شکل زیر هست :


<script>
swal({
Title: "آیا برای حذف محصول مورد نظر مطمئن هستید ؟",
text: "درصورت تایید محصول حذف و قابل برگشت نمی باشد!",
icon: "warning",
buttons: true,
dangerMode: true,
})
.then((willDelete) >= {
If(willDelete) {
swal("کاربر گرامی محصول مورد نظر با موفقیت حذف شد!", {
icon: "success",
});
} else {
swal("محصول مورد نظر امن است.");
}
});
</script>


حالا سوال اینجاست من چطوری بفهمم طرف روی دکمه حذف کلیک کرده که دستور DELETE رو اجرا کنم یا روی انصراف کلیک کرده !! ممنون میشم این بخش رو توضیح بدید من خیلی بلد نیستم

ببخشید خیلی توضیحات زیاد شد.
ممنون میشم دوستان راهنمایی کنید.

beginner_programmer
یک شنبه 15 بهمن 1396, 21:19 عصر
دوستان کسی نیست راهنمایی کنه ؟

Tekyegah
یک شنبه 15 بهمن 1396, 21:56 عصر
سلام
من جداول رو بصورت HTML میسازم و با jquery مدیریت میکنم .

فرض کنید شما یه جدول دارید به شکل زیر ( حالت نمایش توی صفحه ) :


<table>
<tr>
<td>1</td>
<td>name1</td>
<td>
<a id="btn_delete_1" class="icon-trash btn btn-danger " href="#divDelete" data-toggle="modal" style="height:20px;width:20px;"></a>
</td>
</tr>
<tr>
<td>2</td>
<td>name2</td>
<td>
<a id="btn_delete_2" class="icon-trash btn btn-danger " href="#divDelete" data-toggle="modal" style="height:20px;width:20px;"></a>
</td>
</tr>
</table>

و چون حالت نمایش و کارکرد sweetaler رو دقیقا نمیدونم ، اما data-toggle="modal من یه popup باز میکنه که یه کلید بله و خیر داره مثل مثال خودتون .

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

var s;

$("a[id*='btn_delete_']").click(function () {
var n = this.id.split("_");
s = n[2]
});

و توی متغییر s میریزمش .

حالا من ID اون رکوردی که میخوام حذف کنم رو دارم .

اون کلید "بله" که توی پاپ آپ هست یه ID داره مثلا برای من btndelyes هست . کد کلیک اون رو اینطوری منویسم :


$("#btndelyes").click(function () {

$.ajax({
type: "GET",
url: "Engine.aspx",
data: "do=delete&id=" + s + "",
cache: false,
success: function (str) {
}
});

})

کد سمت سرور توی صفحه Engine هم که مشخصه دیگه .

با :

Request.QueryString("do")
کد بدست میارم که چه عملیاتی میخواد انجام شه ( delete )

با :

Request.QueryString("id")
شماره ID اون رکورد رو دارم و یه کد sql برای حذف مینویسم .

سوالی بود در خدمتم .