PDA

View Full Version : سوال از کاربر قبل از حذف سطر



moonfa1392
پنج شنبه 11 تیر 1394, 09:45 صبح
سلام
من این کد رو برای حذف یک سطر از Table در دیتابیس نوشتم:


protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "DeleteMenu")
{
int index = Convert.ToInt32(e.CommandArgument);
int MnuID = Convert.ToInt32(GridView1.Rows[index].Cells[0].Text);
string sqltext = string.Format("delete from Tbl_Menu where Mnu_ID={0}", MnuID);
DAL run = new DAL();
run.ExecNonQuery(sqltext);
alert.InnerText = ("عملیات حذف با موفقیت انجام شد");
}
else if (e.CommandName == "EditMenu")
{
int index = Convert.ToInt32(e.CommandArgument);
int MnuID = Convert.ToInt32(GridView1.Rows[index].Cells[0].Text);
DataTable dt = new DataTable();
string sqltext = string.Format("select * from tbl_menu where Mnu_ID={0}", MnuID);
DAL run = new DAL();
dt = run.ExecuteQuery(sqltext);
if (dt.Rows.Count > 0)
{
MenuTitle.Value = dt.Rows[0]["Mnu_Title"].ToString();
MenuLink.Value = dt.Rows[0]["Mnu_Link"].ToString();
}
}
}
protected void Button1_Click(object sender, EventArgs e)
{
DAL run = new DAL();
string sqltext = string.Format("update tbl_Menu set Mnu_Title=N'{0}',Mnu_Link=N'{1}'",
MenuTitle.Value, MenuLink.Value);
run.ExecNonQuery(sqltext);
alert.InnerText = ("تغییرات با موفقیت ذخیره شد");
MenuTitle.Value = "";
MenuLink.Value = "";
}


من میخوام وقتی روی حذف کلیک میکنم قبل از اینکه حذف بشه یه پیغام بیاد بعد روی ok که کلیک کرد حذف بشه لطفا راهنماییم کنید ممنون

keiv@n
پنج شنبه 11 تیر 1394, 11:04 صبح
http://jsfiddle.net/xjGZj/84/

moonfa1392
پنج شنبه 11 تیر 1394, 11:21 صبح
http://jsfiddle.net/xjGZj/84/

با JQuery خودم بلدم بنویسم. ولی اون مال وقتی هست که بخوایم یه چیز مشخص رو حذف کنیم. من میخوام یه کد بنویسم که وقتی روی حذف کلیک میکنی خودش تشخیص بده که کدوم سطر رو حذف کنه. این کد رو نوشتم الان ولی میخوام قبل از اینکه حذف کنه اخطار بیاد که آیا مطمئن هستید حذف بشه یا نه؟ اگه روی تایید کلیک شد بعد حذف شه اگه روی انصراف کلیک شد حذف نشه!!

keiv@n
پنج شنبه 11 تیر 1394, 11:43 صبح
هر کار کنی مجبوری سمت کلاینت بهش پیغام حذفو بدی چون messageBox نداریم ویندوز فرم نیس !
حالا نمیدونم باتن های داخل گرید ویوت رخداد onClientClick دارن یا نه یادم رفته !
اگر روش بالا نشد : از طریق آیدی گریدویو سلکت بزن به input ای که کلیک شده و پیغام کانفیرم حذفو اونجا بپرس ، در انتخاب دکمه No بنویس ()event.preventDefault

moonfa1392
پنج شنبه 11 تیر 1394, 13:01 عصر
هر کار کنی مجبوری سمت کلاینت بهش پیغام حذفو بدی چون messageBox نداریم ویندوز فرم نیس !
حالا نمیدونم باتن های داخل گرید ویوت رخداد onClientClick دارن یا نه یادم رفته !
اگر روش بالا نشد : از طریق آیدی گریدویو سلکت بزن به input ای که کلیک شده و پیغام کانفیرم حذفو اونجا بپرس ، در انتخاب دکمه No بنویس ()event.preventDefault

گرید ویو رخداد onClientClick داره ولی وقتی از این استفاده می کنم این ارور دیتابیس رو میده نمیدونم چیه:
Input string was not in a correct format
این هم کدی هست که می نویسم:


<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton Runat="server" OnClientClick="return confirm('آیا مطمئن هستید؟');" CommandName="DeleteMenu" HeaderText="حذف" Text="حذف" >حذف</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>

mbasirati
پنج شنبه 11 تیر 1394, 13:05 عصر
کد پایین رو به دکمه حذف توی گریدویو اضافه کن:


OnClientClick=" return confirm('آیا می خواهید این آلبوم را حذف کنید؟') "




مثال:

<asp:LinkButton ID="lkBtnDelete" CssClass="btn btn-xs btn-danger " OnClientClick=" return confirm('آیا می خواهید این آلبوم را حذف کنید؟') " CommandName="delete" CommandArgument='<%# Eval("AlbumId") %>' runat="server"></asp:LinkButton>

moonfa1392
پنج شنبه 11 تیر 1394, 14:26 عصر
کد پایین رو به دکمه حذف توی گریدویو اضافه کن:


OnClientClick=" return confirm('آیا می خواهید این آلبوم را حذف کنید؟') "




مثال:

<asp:LinkButton ID="lkBtnDelete" CssClass="btn btn-xs btn-danger " OnClientClick=" return confirm('آیا می خواهید این آلبوم را حذف کنید؟') " CommandName="delete" CommandArgument='<%# Eval("AlbumId") %>' runat="server"></asp:LinkButton>



اگه دقت کرده باشی دقیقا همونو گذاشتم فقط متن فارسیش فرق میکنه:


OnClientClick="return confirm('آیا مطمئن هستید؟');"

mbasirati
پنج شنبه 11 تیر 1394, 14:29 عصر
اگه دقت کرده باشی دقیقا همونو گذاشتم فقط متن فارسیش فرق میکنه:


OnClientClick="return confirm('آیا مطمئن هستید؟');"


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

moonfa1392
پنج شنبه 11 تیر 1394, 14:31 عصر
کد پایین رو به دکمه حذف توی گریدویو اضافه کن:


OnClientClick=" return confirm('آیا می خواهید این آلبوم را حذف کنید؟') "




مثال:

<asp:LinkButton ID="lkBtnDelete" CssClass="btn btn-xs btn-danger " OnClientClick=" return confirm('آیا می خواهید این آلبوم را حذف کنید؟') " CommandName="delete" CommandArgument='<%# Eval("AlbumId") %>' runat="server"></asp:LinkButton>


در اصل الان وقتی روی حذف کلیک می کنم پیغام میاد ولی وقتی روی اوکی کلیک می کنم این ارور دیتابیس رو میده:
Input string was not in a correct format

moonfa1392
پنج شنبه 11 تیر 1394, 14:32 عصر
خواهش می کنم. مرسی
در اصل الان وقتی روی حذف کلیک می کنم پیغام میاد ولی وقتی روی اوکی کلیک می کنم این ارور دیتابیس رو میده:
Input string was not in a correct format

mbasirati
پنج شنبه 11 تیر 1394, 14:38 عصر
کد گریدویو رو هم بذار تا بهتر بشه بررسی کرد.

moonfa1392
پنج شنبه 11 تیر 1394, 15:02 عصر
کد گریدویو رو هم بذار تا بهتر بشه بررسی کرد.



<asp:GridView CssClass="mGrid" ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4" DataSourceID="SqlDataSource1" ForeColor="#333333" GridLines="None" OnRowCommand="GridView1_RowCommand" DataKeyNames="Mnu_ID">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:BoundField ItemStyle-CssClass="mGrid2" DataField="Mnu_ID" HeaderText="کد منو" InsertVisible="False" ReadOnly="True" SortExpression="Mnu_ID" />
<asp:BoundField ItemStyle-CssClass="mGrid3" DataField="Mnu_Title" HeaderText="عنوان منو" SortExpression="Mnu_Title" />
<asp:BoundField ItemStyle-CssClass="mGrid4" DataField="Mnu_Link" HeaderText="لینک منو" SortExpression="Mnu_Link" />
<asp:ButtonField ItemStyle-CssClass="mGrid5" CommandName="EditMenu" HeaderText="ویرایش" Text="ویرایش" />
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton Runat="server" OnClientClick="return confirm('آیا مطمئن هستید؟')" CommandName="DeleteMenu" HeaderText="حذف" Text="حذف" >حذف</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EditRowStyle BackColor="#2461BF" />
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<HeaderStyle CssClass="SSS" />

<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#34495e" ForeColor="White" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#F5F7FB" />
<SortedAscendingHeaderStyle BackColor="#6D95E1" />
<SortedDescendingCellStyle BackColor="#E9EBEF" />
<SortedDescendingHeaderStyle BackColor="#4870BE" />
</asp:GridView>

mbasirati
پنج شنبه 11 تیر 1394, 15:11 عصر
پس اس کیو ال دیتا سورس کو؟ :|

این مشکل وقتی پیش میاد که OnClientClick رو اضافه میکنی؟

moonfa1392
پنج شنبه 11 تیر 1394, 15:14 عصر
پس اس کیو ال دیتا سورس کو؟ :|

این مشکل وقتی پیش میاد که OnClientClick رو اضافه میکنی؟

اینو میگی؟؟؟ :افسرده:
به من زیر دیپلم بگو درس نخوندم تجربی کار می کنم :افسرده:


DataSourceID="SqlDataSource1"

moonfa1392
پنج شنبه 11 تیر 1394, 15:15 عصر
پس اس کیو ال دیتا سورس کو؟ :|

این مشکل وقتی پیش میاد که OnClientClick رو اضافه میکنی؟

آره فقط وقتی OnClientClick رو اضافه می کنم دیتابیس ارور میده وگرنه اگه اضافه نکنم درست کار می کنه

mbasirati
پنج شنبه 11 تیر 1394, 15:20 عصر
بعد از تگ گرید ویو یه تگ به این شکل باید باشه. اونو هم بذار اینجا
<asp:SqlDataSource...

moonfa1392
پنج شنبه 11 تیر 1394, 15:26 عصر
بعد از تگ گرید ویو یه تگ به این شکل باید باشه. اونو هم بذار اینجا
<asp:SqlDataSource...

اینو که نوشته بودم کپی نشده بوده ببخشد :)



<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:SimOfl5ne.7&@jfERRRFfvmlsConnectionString %>" SelectCommand="SELECT [Mnu_Title], [Mnu_Link], [Mnu_ID] FROM [Tbl_Menu]"></asp:SqlDataSource>

kamranetemadi
جمعه 12 تیر 1394, 10:10 صبح
یه سوال!!!!

OnClientClick=true
باشه یا false
چه تغییری تو نتیجه حاصل میشه؟

moonfa1392
جمعه 12 تیر 1394, 11:35 صبح
یه سوال!!!!

OnClientClick=true
باشه یا false
چه تغییری تو نتیجه حاصل میشه؟



روی هر دو حالت دقیقا همون ارور دیتابیس رو میده:
Input string was not in a correct format.

mbasirati
جمعه 12 تیر 1394, 19:35 عصر
شما یه بریک پوینت (break point) بذار برا GridView1_RowCommand که توی کد بیهایند نوشتی.
بعد برنامه رو اجرا کن و یه سطر و حذف کن و خط به خط اجرا کن ببین توی کدوم خط این خطا اتفاق میفته.