PDA

View Full Version : حذف در دیتاگیرد با کمک از یک ImageButton



shahramasp
یک شنبه 16 اردیبهشت 1386, 14:30 عصر
یک دیتا گیرید دارم که توش یک ItemTemplate و درون اون یک ImageButton می خوام با کلیک روی اون همون رکورد رو حذف کنم ولی نمیشه !
خواهشمند هستم کمک کنید !

Mojtaba_ss
یک شنبه 16 اردیبهشت 1386, 15:06 عصر
مشابه این سوال بارها پرسیده شده و در تمامی موارد اشاره شده که باید برای کنترل خودتون یه CommandName و یه CommandArgument ست کنید.

تنها فرقی که داره اینکه شما در موقع تعریف کنترل خودتون خاصیت ImageUrl اونو مقداردهی می کنید.


<asp:ImageButton ID="ImageButton1" ImageUrl="~/images/download02.gif" CommandName="DownlLoad" CommandArgument='<%#DataBinder.Eval(Container,"DataItem.FileName","{0}") %>' runat="server" />

موفق باشید!

MehranZand
یک شنبه 16 اردیبهشت 1386, 15:38 عصر
یک دیتا گیرید دارم که توش یک ItemTemplate و درون اون یک ImageButton می خوام با کلیک روی اون همون رکورد رو حذف کنم ولی نمیشه !
خواهشمند هستم کمک کنید !

منظور از اون ImageButton است؟ و می خواهید بجای LinkButton پیش فرض از یک
ImageButton استفاده کنید؟

shahramasp
یک شنبه 16 اردیبهشت 1386, 15:48 عصر
بله دقیقا (((می خواهید بجای LinkButton پیش فرض از یک
ImageButton استفاده کنید؟)))

shahramasp
یک شنبه 16 اردیبهشت 1386, 15:51 عصر
استاد عزیز با روش شما این error رو میده

Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.

shahramasp
یک شنبه 16 اردیبهشت 1386, 15:58 عصر
خوب مشکل اول حل شد simply add <pages enableEventValidation="false"/> under <system.web> section in your web.config file.

ولی مشکل دوم اینه که CommandName اجرا نمی شه !!

MehranZand
یک شنبه 16 اردیبهشت 1386, 16:02 عصر
در ImageButton شما CommandName را Delete ست کنید

shahramasp
یک شنبه 16 اردیبهشت 1386, 16:03 عصر
آقا حله فقط آخرین سوال
چطوری مقداری رو که به CommandArgument پاس می دم تو متدم بخونم !؟؟

shahramasp
یک شنبه 16 اردیبهشت 1386, 16:07 عصر
ok بازم یافتم System.Convert.ToInt16(e.CommandArgument)

Mojtaba_ss
یک شنبه 16 اردیبهشت 1386, 16:08 عصر
دوست خوبم کدی رو که برات نوشتم دقیقا داره تو یه وب سایت کار می کنه.
من از این کد برای دانلود استفاده کردم.
یه Column تو GridView ایجاد کردمو نام فایلمو به طریقی که دیدی به خصوصیت CommandArgument کنترل ImageButton دادم.
حالا تو رویداد RowCommand مربوط به GridView نامش رو گرفتمو کد مورد نظرم که دانلود بود رو بر اساس نام دریافتی نوشتم.
اینطوری:


if (e.CommandName == "DownlLoad")
{
string strFileName = e.CommandArgument.ToString();
{

حالا شما میتونی فیلد کلید اصلی خودتو به CommandArgument بدیو توی ایونت RowCommand ولیو مربوط به رکورد مورد نظر رو دریافت کنی و براساس این ولیو عملیات حذف خودتو بنویسی.
موفق باشی!