ورود

View Full Version : مشکل attribute در datagrid



monster_ant
پنج شنبه 12 مرداد 1385, 10:43 صبح
<P>سلام... من از کد زیر برای نمایش پیغام قبل از اجرای command استفاده می کنم..</P>
<P align=left>
</P>
<P align=left>Protected Sub dg_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dg.ItemDataBound</P>
<P align=left>Dim img As ImageButton = CType(e.Item.FindControl("ImageButton8"), ImageButton)</P>
<P align=left>img.Attributes("onclick") = "javascript:return confirm('آیا مطمئن هستید؟')"</P>
<P align=left>End Sub</P>
<P align=left></P>

ولی خطا میده .....
imagebutton8 بصورت itemtemplate استفاده می شه

mahdi_negahi
پنج شنبه 12 مرداد 1385, 10:47 صبح
خطات چیه خطات بگو یعد شما این کد کجا نوشته اید؟

monster_ant
پنج شنبه 12 مرداد 1385, 10:53 صبح
متن خطا....

Object reference not set to an instance of an object.

من این کد رو داخل تابع ItemDataBound دیتا گریدم نوشتم....

mahdi_negahi
پنج شنبه 12 مرداد 1385, 11:14 صبح
image.Attributes.Add("onclick","javascript:return confirm('آیا مطمئن هستید؟')")

monster_ant
پنج شنبه 12 مرداد 1385, 11:33 صبح
فرقی نمیکنه همون خطا رو میده.........:متفکر:

mahdi_negahi
پنج شنبه 12 مرداد 1385, 11:54 صبح
تابعی که با جاوا نوشته اید و خطی که خطا میگرد را بنویسید

monster_ant
پنج شنبه 12 مرداد 1385, 12:25 عصر
دوست عزیز مسئله زیاد پیچیده نیست......مشکل از کد های serverside هست...

ردیفی که تو datagrid قسمت itemtemplateتعریف شده.....




<asp:TemplateColumn>

<ItemTemplate>

<asp:ImageButton ID="ImageButton8"

runat="server"

CausesValidation="false"
CommandName="delete"
ImageUrl="~/img/img/cut.gif"
ToolTip="¥¨ه ©کی©§"/>
</ItemTemplate>

</asp:TemplateColumn>


کدی هم که قسمت codebehind نوشته شده




Protected Sub dg_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dg.ItemDataBound
Dim img As ImageButton = CType(e.Item.FindControl("ImageButton8"), ImageButton)
img.Attributes.Add("onclick", "javascript:return confirm('آیا مطمئن هستید؟')")
End Sub


و خطایی هم که رخ میده مربوط به مقدار دهی متغیر img هست....
منظور من از این کد ها اینه که قبل از پاک کردن ردیف پیغام سوال ظاهر بشه و در صورت تایید commandمربوطه اجرا بشه.......

Behrouz_Rad
جمعه 13 مرداد 1385, 22:43 عصر
باید هم این خطا گرفته بشه!
اولین کاری که باید در روال ItemDataBound و امثالهم انجام بدی، تعیین نوع ردیف پردازشی هست!
این کار رو باید با دستور زیر انجام بدی:


If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then

چون اولین سطر در DataGrid، سطر Header هست و مسلما ImageButton های تو در Data Row ها قرار دارند، ImageButton ای در Header پیدا نمیشه و خطایی که اشاره کردی رخ میده!

موفق باشی.

yavari
یک شنبه 15 مرداد 1385, 05:26 صبح
سلام

منم این کارو میخوام با عناصر دیتالیستم انجام بدم اما برا بار اول جواب نمیده و برا بعدیا مشکلی نداره
اینجوری تعریف کردم که برا آیتم کامند ، دیتالیست اگه مثلا آیتم اول انتخاب شد ، اتریبیوت OnClick اون آیتمی که
تو دیتالیستم هست را مقدار دهی کردم با آلرتم
اما برا کلیک اول جواب نمیده
چرا ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

ممنون