PDA

View Full Version : دیده نشدن دکمه توسط کاربران لاگین نشده



alibabaei2
سه شنبه 08 شهریور 1390, 23:08 عصر
سلام
من برای اینکه کاربران لاگین نشده دکمه ای رو در سایت نبینند این کد رو برای دکمه نوشتم اما جواب نمیده
<asp:Button ID="btnAddtoBasket" runat="server" Text="اضافه به سبد خرید"
Visible='<%# HttpContext.Current.User.Identity.IsAuthenticated %>'

Saman Hashemi
سه شنبه 08 شهریور 1390, 23:13 عصر
چرا همین کار تو لود صفحه نمیکنید؟

milade
سه شنبه 08 شهریور 1390, 23:15 عصر
مگه داری بایند میکنی که نوشتی # ؟

2 کار میتونی بکنی :
1.بری کد رو توی لود بنویسی .
2.این طوری تست کن ببین میشه :


<asp:Button ID="btnAddtoBasket" runat="server" Text="اضافه به سبد خرید" Visible='<% Response.Write(HttpContext.Current.User.Identity.I sAuthenticated); %>'

reza344
چهارشنبه 09 شهریور 1390, 08:43 صبح
چرا همین کار تو لود صفحه نمیکنید؟

کاملا درسته ، علت : چرخه حیات یک صفحه در asp.net

زمانی که یک برنامه asp.net مینویسید بسیار مهم است که بدانید چه کاری را در کجا انجام دهید. داشتن درک صحیح از ترتیب اتفاق افتادن رخدادهای صفحه شما را از ساعتها کلافه شدن و خطایابی نجات میدهد. علاوه بر آن میتوانید از بروز خطاهای ناخواسته و همچنین خطاهای کشف نشده جلوگیری کنید

به این لینک رجوع کن
http://msdn.microsoft.com/en-us/library/ms178472.aspx

موفق باشی

milade
چهارشنبه 09 شهریور 1390, 10:52 صبح
کاملا درسته ، علت : چرخه حیات یک صفحه در asp.net


بلاک های کد رندر هم یه امکان Asp.Net هست . دلیل نمیشه ما همه کارمون رو توی Event ها بکنیم ... ( هر چند من خودم توی پست بالاییم گفتم توی لود بنویسن ، اما یک راه حل دیگه هم گزاشتم . )
اگر این طوری باشه پس باید تمامی کنترل ها رو توی "چرخه صفحه ها" بسازیم !

موفق باشید .

reza344
جمعه 11 شهریور 1390, 00:55 صبح
مگه داری بایند میکنی که نوشتی # ؟



باید عرض کنم خدمتتون که <%# میتواند به عنوان یه properties برای کنترلهای سمت سرور استفاده شود و برای این کار نمیتوان از <% یا <%= استفاده کرد



قابل ذکر است که:
<%= در زمان Render و
<%#در زمان DataBind() ارزیابی میشود و برای پی بردن به آن اگه DataBind() رو در رویداد
Page_PreRenderComplete یا Page_Load فراخوان کنیم کد دوستمون جواب خواهد داد و دکمه مورد نظر پنهان خواهد شد

موفق باشید

reza344
جمعه 11 شهریور 1390, 01:02 صبح
اطلاعات بیشتر :
The difference between <%= and <%# in ASP.NET (http://blogs.msdn.com/b/dancre/archive/2007/02/13/the-difference-between-lt-and-lt-in-asp-net.aspx)

milade
جمعه 11 شهریور 1390, 01:25 صبح
اوه بله .
اطلاعات بنده برای مدتی پیش هست و چون برنامه نویسی نمیکنم و صرفاً از دانسته ها پست میزنم ممکنه دچار اشتباه بشم .
کاملاً حق با شماست .

بنده اصلاح میکنم .

alibabaei2
جمعه 11 شهریور 1390, 15:39 عصر
ببینید حالا یک دکمه دارم که می خوام یه دیتایی از دیتا بیس بخونم اگر مقدارش false بود دکمه نمایش داده بشه برای این کار کد زیر رو می نویسم اما موقع اجرای صفحه ارور میده
<asp:LinkButton ID="lbDoPayment" runat="server" Visible='<%# (int)Eval("IsPaid") == 0 %>'>

عنوان ارور هم این هستش
Specified cast is not valid

reza344
جمعه 11 شهریور 1390, 17:36 عصر
<asp:LinkButton ID="lbDoPayment" runat="server" Text="sampleText" Visible='<%# (int)Eval("IsPaid") == 0 %>'/>

alibabaei2
جمعه 11 شهریور 1390, 18:04 عصر
<asp:LinkButton ID="lbDoPayment" runat="server" Text="sampleText" Visible='<%# (int)Eval("IsPaid") == 0 %>'/>


این که همین کد خودمه

reza344
جمعه 11 شهریور 1390, 18:27 عصر
این که همین کد خودمه مطمئنی؟ :متفکر:

اون آخرش از اینا: / نذاشته بودی :بامزه: (Slash) (http://en.wikipedia.org/wiki/Slash_%28punctuation%29)

alibabaei2
جمعه 11 شهریور 1390, 18:38 عصر
واقعا به نظرتون اون اروری که میده ارور syntaxe؟؟؟؟؟؟
از اونا گذاشتم اما اینجا ننوشته بودم:لبخندساده:
ممنون از توجهتون:تشویق:

reza344
جمعه 11 شهریور 1390, 18:49 عصر
بجای پست تشکر دکمه تشکر هم در این سایت وجود دارد :بامزه:


واقعا به نظرتون اون اروری که میده ارور syntaxe؟؟؟؟؟؟
واسه من که ارور نداد !

alibabaei2
جمعه 11 شهریور 1390, 19:06 عصر
منم تو یه پروژه دیگه استفاده کردم اروری نمیده اما اینجا صفحه باز نمیشه و ارور ممیده:ناراحت:

reza344
جمعه 11 شهریور 1390, 19:33 عصر
آیا وقتی از Convert.ToInt32() استفاده میکنی هم همین مشکل رو داری ؟ لطفا بررسی کن تا دلیلشو برات توضیح بدم

alibabaei2
جمعه 11 شهریور 1390, 21:55 عصر
مگه تو html صفحه میشه از convert.ToInt32 استفاده کرد؟
اگه میشه بگید چطوریه. من که نتونستم

reza344
جمعه 11 شهریور 1390, 22:09 عصر
<asp:LinkButton ID="lbDoPayment" runat="server" Text="sampleText" Visible='<%# Convert.ToInt32(Eval("IsPaid")) == 0 %>'/>

صادق صدقی
جمعه 11 شهریور 1390, 22:27 عصر
آقا چرا اذیت می کنی خودتو؟
توی فرم لود بنویس




if (!Page.User.Identity.IsAuthenticated)
{
foreach (Control c in Page.Controls)
{
if (c == Button)
{
c.Visible = false;
}
}
}

alibabaei2
جمعه 11 شهریور 1390, 22:46 عصر
با convert.Toint32 درست شد