PDA

View Full Version : سوال: سوال در مورد دسترسی به کنترل های موجود در listview



Ali0Boy
جمعه 14 بهمن 1390, 01:01 صبح
با عرض سلام خدمت اساتید عزیز من می خواستم بدونم چطور می شود به یک hyperlink که در یک listView گذاشته ام و نام آن lnkDelete هست از طریق کدنویسی به اون دسترسی داشته باشم. این hyperlink در item template هست و امکان داره 10 بار در یک صفحه باشد که بایک dataPager کنترل می کنم بیش از 10 تا نشود. ولی من میخواهم هر وقت دوست داشتم با کد نویسی همه ی این hyperlink ها رو مخفی کنم یا به نمایش بزارم. ممنون می شوم راهنماییم کنید.

در ضمن در صفحات وب وقتی روی کنترلی کلیک می شود اول page_load اجرا می شود بعد کنترل برای این مشکل چه پیشنهادی دارید؟

fakhravari
جمعه 14 بهمن 1390, 01:53 صبح
پنل در گرید فقط برای اعضا نمایش داده میشود

<asp:GridView ID="GridView1" runat="server"
AutoGenerateColumns="False" ShowHeader="False" BorderStyle="None"
GridLines="None" Width="100%">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<center>
<b><p style="text-align:right; font-size:12px; color:Blue; margin-right:5px; margin-left:5px;"><%#Eval("Subject")%></p></b>
<img src='<%# Eval("Img", "Img/Img_Topik/{0}")%>' width="400" height="180"/> <br /><br />
</center>
<asp:Label ID="Label3" runat="server" Text='<%#Eval("Message")%>'></asp:Label>
<div dir="ltr" style="text-align:left; margin-left:20px;">
<asp:Panel ID="Panel1" runat="server" visible='<%# HttpContext.Current.User.Identity.IsAuthenticated %>'>
<%--<a dir="rtl" target="_self" href='<%# Eval("Atach", "Img/File_Topik/{0}")%>'>--%>
<a dir="rtl" target="_self" href='Show/Dawnload.aspx?Atach=<%#Eval("Atach")%>'>
<img src="AfDanload_files/1157.png" title="دانلود فایل : <%#Eval("Subject")%>" />
</a>
</asp:Panel>
<p dir="rtl" id="frmm" style="text-align:center;">
<b>تاریخ ارسال : </b><asp:Label ID="Label1" runat="server" Text='<%#Eval("Date")%>'></asp:Label>&nbsp;|&nbsp;<b>زمان ثبت</b> : <asp:Label ID="Label2" runat="server" Text='<%#Eval("Time")%>'></asp:Label>&nbsp;|&nbsp;
</p>
</div>
<hr style="color:#8AB93D;"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>

<EmptyDataTemplate>
<p style=" color:Olive; float:none;">پست ثبت نشده است</p>
</EmptyDataTemplate>
<PagerStyle HorizontalAlign="Center" BorderStyle="Solid"/>
</asp:GridView>

mehran_sh_t
جمعه 14 بهمن 1390, 09:32 صبح
سلام
می تونید از دستور زیر استفاده کنید:

foreach (DataListItem item in list.Items)
{
HyperLink lnk = item.FindControl("hyperlinkID") as HyperLink;

اینطوری به تک تک hyperlink ها دسترسی دارید.

برای مخفی کردن هم، زیر همون دستور می تونید بنویسید:

lnk.Visible = false;



در ضمن در صفحات وب وقتی روی کنترلی کلیک می شود اول page_load اجرا می شود بعد کنترل برای این مشکل چه پیشنهادی دارید؟

مشکل این قسمت چیه؟

Ali0Boy
جمعه 14 بهمن 1390, 10:42 صبح
سلام

در موورد "hyperlinkID" باید نام hyperlink ام رو بزارم یا که همین خودش رو بزارم.





مشکل این قسمت چیه؟
مشکل اینجاست که من در Page_Load هر چه textbox هست را خالی کردم. ولی در button موردنظر قراره اونارو ذخیره کنم.
وقتی روی button کلیک می کنم اول page_load اجرا شده و متن خالی می شود و بعد button که اون موقه چندتا فیلد خالی ذخیره می شود.

hamid_shrk
جمعه 14 بهمن 1390, 12:33 عصر
دوست عزیز بهترین روش استفاده از comman argumant و commandName برای دکمه Delete هست( یعنی همون کاری که برای گرید انجام میدیم) که تو همین سایت خیلی نمونش زیاد هست ، سرچ کنید لطفا.

Ramin-sh-t
پنج شنبه 04 مهر 1392, 14:26 عصر
سلام
می تونید از دستور زیر استفاده کنید:
foreach (DataListItem item in list.Items)
{
HyperLink lnk = item.FindControl("hyperlinkID") as HyperLink;
اینطوری به تک تک hyperlink ها دسترسی دارید.
_________________________________________
با عرض سلام و خسته نباشید
ببخشید میشه همین تکه کد رو به زبان vb هم بگید ؟ چون منم دقیقا همین مشکلو دارم ولی سایتم رو دارم با vb مینویسم

ممنون

EnKamran
پنج شنبه 04 مهر 1392, 18:45 عصر
تو PageLoad شما شرط بذارید اگر PostBack نبود خالی کنه اگر PostBack بود کاری نکنه

Ramin-sh-t
پنج شنبه 04 مهر 1392, 20:29 عصر
با عرض سلام و خسته نباشید
ببخشید میشه همین تکه کد رو به زبان vb هم بگید ؟ چون منم دقیقا همین مشکلو دارم ولی سایتم رو دارم با vb مینویسم...
چطوری میتونم به عنوان مثال: مقدار یک lable که داخل listview هست را توی یه متغیری مثل session بریزم؟

ممنون از اساتید محترم