master pages

NimiBS

New member
master pages

בניתי טופס שעבד כמו שצריך. לאחר מכן קישרתי אותו ל master page וכעת מתקבלת לי שגיאה כאשר אני עושה לטופס submit. השגיאה נובעת מכך שכאשר אני עושה request.form אין ערכים חוזרים. יש לכם מושג איך אני פותר את הבעיה הזו.. זה ממש דחוף...
 

24sharon

New member
לא העלית קוד

אז זו השערה בלבד. כנראה שמת פקד FORM בתוך פקד FORM שהרי המסטר כולל בתוכו FORM, ומזה יכולה אולי לנבוע הבעיה. באם לא - תעלה 'פיסת' קוד זה ייקל.
 

NimiBS

New member
תגובה

לא הוספתי עוד תגית של form. כי אז אני מקבל שגיאה של "דף ASP.net יכול להכיל רק תגית אחת של form"... ואין לי מושג מה השגיאה... הוספתי קוד לדוגמא: <%@ Page Language="C#" MasterPageFile="~/Mas.master" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" Title="Untitled Page" %> <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <br /> <asp:Button OnClick ="sub" ID="Button1" runat="server" Text="Button" /> </asp:Content> זה הקוד של הקונטנט using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class Default2 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void sub(object sender, EventArgs e) { Response.Write("in sub"); Response.Write(Request.Form["textbox1"]); } } ובשורה של הכתיבה של הערך מהתיבת טקסט לא חוזר לי ערך
 

24sharon

New member
בוגר ASP?

בכל אופן בשביל להגיע לערך שמופיע בתיבת הטקסט בתוך הדף עצמו פשוט אתה צריך לכתוב
Response.Write(TextBox1.Text);​
דרך אגב יש להתייחס לאותיות גדולות וקטנות TextBox1 לא שווה לtextbox1 בהצלחה
 

NimiBS

New member
אכן בוגר ASP

קודם כל אני מודע לך על התגובה המהירה. אכן אני תיכנתתי כמה שנים טובות ב ASP ורק אחר שנה של תכנות ב C# החלטתי לעבור ל asp.net. אני מבין אתה אומר שאפשר לגשת לטקסט באמצעות response.writes("TextBox1.text") אבל זה עדיין לא עונה לי על התשובה למה אני לא יכול לגשת לערכים הללו בעזרת request.form אני מבין מה הבעיה בדיוק, רק שאני לא יודע איך להתגבר עלייה. הבעיה היא שכאשר מתבצעת השגרה של onclick בתוך הקונטנט הדף עצמו עוד לא עלה אפילו. זאת אומרת הוא קודם כותב לי inSub (מה שאמרתי לו לכתוב שהוא מגיע לשגרה) ורק אז ניתן לראות את התגיות הפותחות <html> וכו'. תודה מראש לתשובה
 

yairov

New member
תגובה

אם יש לך MasterPage, תמחק את ה-HTML שיש לך בתוך הדף עצמו. יש לך Form גם ב-MasterPage וגם ב-Page.
 

NimiBS

New member
לא הבנתי כל כך את הפתרון שלך

אכן דף המאסטר מכיל תגיות html ובדף הקונטנט אין. אך לא הבנתי את ההצעה שלך לפתרון.?
 

blue25

New member
פתרון

כאשר שמים דף בתוך master page ה client id שלו משתנה (כדי לשמור על חד ערכיות בדף שלך, בדיוק כמו control בתוך grid), כלומר הוא כבר לא יהיה textbox1 אלה Master:textbox1, תסתכל ב viewsource מה התרנדר לך. תפנה ל control שלך ככה
Response.Write(Request.Form[textbox1.clientId]);​
דרך אגב, אתה יכול להיכנס בזמן debug ל Request.Form ל items שלו ולראות את השמות של כל ה items שנמצאים בו, זה בסך הכל container.
 
למעלה