PDA

View Full Version : سوال: عدم فراخوانی رویداد!



makh1387
یک شنبه 06 بهمن 1387, 16:43 عصر
سلام
من یه کنترل از کلاس button به ارث گرفتم و runtime به صفحه اضافه می کنم (به یه table) مشکلم اینجاست که رویداد کلیک مربوط به کنترلم فراخونی نمی شه

می خواستم بدونم ممکن ایراد از مسترپیجم باشه چون همین کنترل رو وقتی runtime به یه صفحه که مسترپیج نداره اضافه می کنم مشکلی نداره؟
لطفا راهنماییم کنید!

emad11
یک شنبه 06 بهمن 1387, 21:46 عصر
دقیق کدی که نوشتی رو بذار تا بهت بگم.

makh1387
دوشنبه 07 بهمن 1387, 14:36 عصر
سلام
این کد قسمت مسترپیج هست:


ProtectedSub Page_Load(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.Load
IfNotMe.IsPostBack Then
Try
Dim projectio AsString = Me.Request.PhysicalApplicationPath + "project.xml"
Dim projectserializer AsNew parsaClasses.XmlSerialization(Of parsaClasses.Project)(System.IO.File.OpenRead(proj ectio))
Dim objproject As parsaClasses.Project = projectserializer.ReadFromStream()
Menu1.Items.Clear()
Dim dbcx AsNew DMS.DBContext
Dim menu = dbcx.SysItems.Where(Function(c) c.Type = General.Enums.ItemType.menu And c.KDParent = objproject.KD)
If menu.Count > 0 Then
Dim xs AsNew parsaClasses.XmlSerialization(Of parsaClasses.Menu)(menu.First.Schema)
Dim currentmenu = xs.ReadFromStream()
Dim objmenucreator AsNew MenuCreator(currentmenu, Menu1)
objmenucreator.getMenu()
EndIf
Catch ex As Exception
Me.Session.Add("error", ex.Message)
Response.Redirect("errorpage.aspx")
EndTry
EndIf
EndSub

تو این قسمت یه منو رو از بانک می خونه و runtime می سازدش

اینم کلاس masterbutton که button رو ازش به ارث گرفتم


PublicMustInheritClass Masterbtn
Inherits Button
Implements IUserControl
ProtectedEnum condition
bozorgtar
mosavi
kochektar
bozorgtarmosavi
kochektarmosavi
azta
shbih
EndEnum
Protected p_destinition AsString = String.Empty
Protected P_onvan AsString = String.Empty
Protected P_Datasource AsString = String.Empty
Protected asptype AsString = String.Empty
Protected p_query AsString = String.Empty
Protected prn As Control
Protected p_size As System.Drawing.Size
Protected p_color As System.Drawing.Color
PublicProperty btnBackColor() As System.Drawing.Color Implements IUserControl.BackColor
Get
Return p_color
EndGet
Set(ByVal value As System.Drawing.Color)
p_color = value
Me.BackColor = value
EndSet
EndProperty
PublicProperty Caption() AsStringImplements IUserControl.Caption
Get
Return p_onvan
EndGet
Set(ByVal value AsString)
P_onvan = value
Me.Text = value
EndSet
EndProperty
PublicProperty ControlSize() As System.Drawing.Size Implements IUserControl.ControlSize
Get
Return p_size
EndGet
Set(ByVal value As System.Drawing.Size)
p_size = value
EndSet
EndProperty

PublicProperty destinition() AsString
Get
Return p_destinition
EndGet
Set(ByVal value AsString)
p_destinition = value
EndSet
EndProperty
PublicProperty Datasource() AsString
Get
Return P_Datasource
EndGet
Set(ByVal value AsString)
P_Datasource = value
EndSet
EndProperty
PublicProperty onvan() AsString
Get
Return P_onvan
EndGet
Set(ByVal value AsString)
P_onvan = value
EndSet
EndProperty
PublicProperty query() AsString
Get
Return p_query
EndGet
Set(ByVal value AsString)
p_query = value
EndSet
EndProperty
ProtectedMustOverrideFunction CreateconditionOrValues(ByVal masterusercontrol As WebMasteruserControl) AsString
PublicSubNew()
EndSub




EndClass


اینم کد مربوط به صفحه که می خوام دکمه رو runtime توش اضافه کنم



ProtectedSub Page_Load(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.Load
IfNotMe.IsCallback Then
Dim objpage As DMS.SysItem = CType(Me.Session("page"), DMS.SysItem)
If IsNothing(objpage) Then
Me.Response.Redirect("errorpage.aspx")
EndIf
'objpage.Schema.Save("f:\1.xml")
IfNot LoadPage(objpage.Schema) ThenMe.Response.Redirect("errorpage.aspx")
EndIf
EndSub

PrivateFunction LoadPage(ByVal schema As XElement) AsBoolean
Try
Dim serializer AsNew parsaClasses.XmlSerialization(Of parsaClasses.Page)(New System.IO.MemoryStream)
Dim thisPage As parsaClasses.Page = serializer.xelementtoObject(schema)
ForEach element As parsaClasses.Control In thisPage.ControlList
Dim obj As IUserControl
IfNot IsNothing(element) Then
Dim style AsString = "position:inherit;left={0}; top={1}"

SelectCase element.Type
Case General.Enums.WebUserControl.BtnSearch
obj = New btnsearch
EndSelect
style = String.Format(style, element.location.X, element.location.Y)
IfNot IsNothing(obj) Then
obj.Caption = element.Onvan
obj.BackColor = element.BackColor
Dim tc AsNew TableCell()
tc.Controls.Add(obj)
Dim tr AsNew TableRow()
tr.Cells.Add(tc)
Me.Table1.Rows.Add(tr)
EndIf
EndIf
Next
Catch ex As Exception
ReturnFalse
EndTry
ReturnTrue
EndFunction


مرسی