PDA

View Full Version : مشکل در حین کار با grid view



merychobi
یک شنبه 06 خرداد 1386, 22:40 عصر
یک گراید ویو داریم که شامل دو فیلد(نام و جزییات)و چند سطر است

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

تگ متا باید در کدام قسمت نوشته بشه لطفا به صورت کامل توضیح بدید

Alireza_Salehi
دوشنبه 07 خرداد 1386, 06:55 صبح
با استفاده از CommnadArgument و CommandName و رویداد Row_Command به هر چیزی می تونید دسترسی داشته باشید.
اگر نامفهومه بگید توضیح بیشتری بدم.

merychobi
سه شنبه 08 خرداد 1386, 09:21 صبح
با استفاده از CommnadArgument و CommandName و رویداد Row_Command به هر چیزی می تونید دسترسی داشته باشید.
اگر نامفهومه بگید توضیح بیشتری بدم.



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

Alireza_Salehi
سه شنبه 08 خرداد 1386, 11:31 صبح
اول به گریدویو تون یک TemplateField اضافه کنید:

بعد مثلا یک LinkButton به این فیلد اضافه کنید، حالا برای پاس دادن پارامتر به رویداد Row_Command از خاصیت CommandArgument و تشخیص نوع Commnad از خاصیت CommandName استفاده می کنیم:


<asp:GridViewID="GridView1"runat="server"DataSourceID="SqlDataSource1"Width="305px">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButtonrunat="server"CommandName="x"CommandArgument='<%#Eval("name") %>'Text="جزئیات"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

برای وصل کردن دیتابیس به خاصیت های مختلف از '<%#Eval("نام فیلد") %>' استفاده می کنید.

حالا در رویداد Row_Command گریدویو داریم:


ProtectedSub GridView1_RowCommand(ByVal sender AsObject, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs ) Handles GridView1.RowCommand
If e.CommandName = "x"Then
'...........
EndIf
EndSub


با e.CommandName به نام و با e.CommandArgument به مقدار Command دسترسی دارید.

به جای LinkButton از کنترل های دیگری هم که CommandName و CommandArgument دارند می تونید استفاده کنید.

merychobi
سه شنبه 08 خرداد 1386, 17:36 عصر
باسلام مجدد
با تشکر از جناب صالحی ولی متاسفانه من متوجه نشدم و نتوانستم به templatefield یک linkbutton اضافه کنم.

یکبار دیگر سوالم را به طور واضح تر می گوییم
می خواهیم با کلیک بر روی لینک جزییات هر سطر, به مقدار ستون namelesson دسترسی داشته باشیم.
(به طور مثال : با کلیک بر روی سطر اول مقدار asp در یک متغیر ذخیره شود)
لطفا تصویر ضمیمه را مشاهده کنید تا بیشتر متوجه شوید

Alireza_Salehi
سه شنبه 08 خرداد 1386, 20:22 عصر
?!!!!???

شما کافیه کدی که داخل تگ Columns هست رو عینا در کد خودتون در داخل تگ Column گرید ویوتون کپی کنید.
فقط مقدار name را مطابق با فیلدی که می خواهید به مقدارش دسترسی داشته باشید عوض کنید (شما بنویسید namelesson).
بعدش هم در رویدادی که گفتم توسط e.CommandArgument به مقداری می خواهید دسترسی دارید!