בעיה עם MaterPages - המשך...

בעיה עם MaterPages - המשך...

הבעיה - שיתוף נתונים בין ה - Page ל - MasterPage שלו: ניסיתי את דרך הפעולה שJustin הביא בפעם הקודמת ע"מ לגשת למאפיינים ב - MP, הקוד המקצור להלן: ה - MP
public partial class Current_MasterPage : System.Web.UI.MasterPage { // סתם איזה מאפיין שאני מנסנה לחשוף private int _PageID; public int PageID { get { EnsureChildControls(); return _PageID; } set { EnsureChildControls(); _PageID = value; } }​
הדף (לפני שמעבירים ל - BasePage וירושה):
public partial class Current_Default : Page { protected void Page_Load(object sender, EventArgs e) { MasterPage myMasterPage = (MasterPage)this.Master; } }​
(כמובן שכשייצרתי אותו בחרתי עבורו MasterPage ב - VS ויש בהתחלה את השורה הזו:)
<%@ Page Language="C#" MasterPageFile="~/Current/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Current_Default" Title="Untitled Page" %>​
בכל זאת myMasterPage לא חושף את PageID, לא ב - intellisense, וכמובן שניסיון לקמפל או להריץ זורק שגיאה. למישהו יש את הפתרונים
 

Justin Angel

New member
קה פרובלמה מואי צ'יקיטה?

למה אתה ממיר את הטיפוס ל-MasterPage אם זה לא השם של המחלקה שאליה הוספת את המאפיינים? אצלך באפליקציה המחלקה נקראת Current_MasterPage.
Current_MasterPage myMasterPage = (Current_MasterPage) this.Master;​
 
ועוד משהו...

לגבי ה - Base, הוא לא מזהה את Current_MasterPage, (סביר להניח בגלל שהקלאסים לא מקושרים), איך אפשר לטפל בזה
 

Admini

New member
את הקלאס הזה

תשים בתוך AppData, ואז תוכל להשתמש בו בכל דף באתר.
 

Admini

New member
לא יודע

לי תמיד הכי קל היה לעשות את זה ככה:
Dim oFMaster as INN.Forum.ForumsMaster = Master​
ומשם זה מאוד פשוט להשתמש במאפיינים של הדף, ובפונקציות שלו. אגב, אפשר באותה צורה לעבוד גם עם סוגים אחרים של Web Controls, למשל כאלו שבקבצי ascx - את ה-Code Behind לשים בתוך AppCode ולא בתוך filename.ascx.vb ולהגדיר לו לרשת מהפונק' שב-App_Code. עובד חלק.
 
למעלה