PDA

View Full Version : تغییر Theme توسط User



Amir Taghavi
یک شنبه 07 مرداد 1386, 11:37 صبح
سلام

من قصد دارم که User بتونه Theme سایت رو تغییر بده. برای این کار من یه DropDownList در نظر گرفتم که نسبت به Item انتخاب شده Theme کل سایت تغییر میکنه.


Protected Sub btnChangeTheme_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

Me.Session("Theme") = Me.ddlTheme.SelectedItem.Text
Me.Response.Redirect(Me.Request.Url.AbsoluteUri)
End Sub
و برای اینکه این تغییرات اعمال بشن یه کلاس بصورت زیر نوشتم.


Imports System

Public Class ThemeManager
Implements IHttpModule

Public Sub Dispose() Implements System.Web.IHttpModule.Dispose
End Sub

Public Sub Init(ByVal context As System.Web.HttpApplication) Implements System.Web.IHttpModule.Init

AddHandler context.PreRequestHandlerExecute, New EventHandler(AddressOf ChangeTheme)
End Sub

Private Sub ChangeTheme(ByVal sender As Object, ByVal e As EventArgs)

Dim pg As Page = TryCast(HttpContext.Current.Handler, Page)

If pg IsNot Nothing Then

'Dim pf As ProfileCommon = DirectCast(HttpContext.Current.Profile, ProfileCommon)
'pg.Theme = pf.Theme
'IO.File.ReadAllText(HttpContext.Current.Server.Ma pPath("Theme.dat"))
pg.Theme = HttpContext.Current.Session("Theme")
End If
End Sub
End Class


حالا مسئله اینجاست که چرا Theme تغییر نمی کنه؟! آیا روش کار درسته؟ لطفا" منو راهنمایی کنید.

shahab_ksh
یک شنبه 07 مرداد 1386, 12:35 عصر
ببخشید اشتباهی اینجا زدم اما به جاش

ProtectedSub Page_PreInit(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.PreInit
'تمپلیت ها
Page.MasterPageFile = My_Template.Cpl_PageTemplate
Page.Theme = My_Template.Cpl_PageTheme
EndSub


بصورت دینامیک تغییر می کند

Amir Taghavi
یک شنبه 07 مرداد 1386, 13:06 عصر
شهاب عزیز از اینکه توجه کردی ممنونم.

اما بنظرت واسه چی من از IHttpModule استفاده کردم؟! واسه اینکه دیگه تو هر Page از کدی که نوشتی استفاده نکنم.

m.hamidreza
یک شنبه 07 مرداد 1386, 18:37 عصر
من از ترکیب asp.net با javascript استفاده کردم البته با update panel . نمیدونم اصولی نوشتم یا نه ولی باقلوا کار می کنه ! خیلی هم سادست! :چشمک:
اگه می خوای اونو بگم بهت ....

Amir Taghavi
یک شنبه 07 مرداد 1386, 22:58 عصر
با عرض شرمندگی باید بگم که کدی که گذاشتم هیچ مشکلی نداره! اشکال از خودم بود چون در Design Time باید ""=Theme باشه!