พึ่งเคยใช้งานครั้งแรกโปรดอ่านที่นี่! howtouse!
x
  • Register
หางานด้าน IT อยู่เหรอ?

CodeBehind ใน Visual Web Developer 2010 ผม มันไม่โชว์คอนโทรล

+2 votes

โค๊ดตัวอย่างนะครับ ในหน้า MyCodebehind.aspx

 

<%@ Language="C#" Inherits="MyStuff.MyClass" %>
<HTML>
    <body>
        <form id="MyForm" runat="server">
        <asp:textbox id="MyTextBox" text="Hello World" runat="server"></asp:textbox>
        <asp:button id="MyButton" text="Echo Input" Onclick="MyButton_Click" runat="server"></asp:button>
        <asp:label id="MyLabel" runat="server" />
        </form>
    </body>
</HTML>

แต่ว่าในหน้า Mycodebehind.cs 

ผมไม่สามารถที่จะมองเห็น คอนโทรลได้หน่ะครับ 

 

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace MyStuff
{
    public class MyClass : Page
    {
        protected System.Web.UI.WebControls.Label MyLabel;
        protected System.Web.UI.WebControls.Button MyButton;
        protected System.Web.UI.WebControls.TextBox MyTextBox;

        public void MyButton_Click(Object sender, EventArgs e)
        {
            MyLabel.Text = MyTextBox.Text.ToString(); << MyLabel เรียกใช้ไม่ได้หน่ะครับ 
        }
    }
}

มีสาเหตุใดบ้าง ที่ทำให้ผม มองไม่เห็น control ใน ไฟล์โค๊ด มันครับ แนะนำมือใหม่ ASP หน่อยครับ ^^

 

ถามเมื่อ May 15, 2012 in ASP.net โดย Wisit Paew (247 คะแนน)
   

1 Answer

+3 votes

ทำไม <%@ Language="C#" Inherits="MyStuff.MyClass" %>

ไม่เห็นมีระบุ CodeFile หรือ CodeBehind กรณีนี้ ผมว่าน่าจะเป็น CodeFile="Mycodebehind.cs" นะครับ
ตอบเมื่อ May 15, 2012 โดย Krurkrit Phoosakul (1,174 คะแนน)
edited May 15, 2012 โดย Krurkrit Phoosakul
ขอบคุณมากครับ
แก้เป็น CodeFile="~/Mycodebehind.cs" ใช้ได้เลยครับ ^^

ผมก็หลงไปใส่ CodeBehind ตั้งนาน (เข้าใจว่าน่าจะเป็น CodeBehind นะ) ก็พยายาโฟกัสปัญหาแถวๆนั้นแหละ แต่ ก็หลงผิด ขอบคุณมากครับ มือใหม่ๆ ASP
CodeBehind ใช้สำหรับเวลาสร้างแล้วระบุเป็น Web Application (ต้องมี Solution file เสมอ) ส่วน CodeFile ใช้สร้างเป็น Web Site
เอ๋ แล้ว Web application กับ Website ไม่เหมือนกันเหรอครับ

แปลกแหะ เพราะตอนแรกผมได้ไฟล์มามีแต่ file *.aspx + *.cs มาหน่ะครับ แล้วผมก็มาเริ่มสร้าง โปรเจค solution (ซึ่งก็ได้ไฟล์ *.sln มาแล้ว) ทีนี้ ผมก็ add file exist (*.aspx + *.cs) เข้าไปในโปรเจค ซึ่งแบบนี้ ผมก็น่าจะทำการเรียก codeBehind ใช่ไหมครับ แต่พอเรียกแล้ว ก็เกิดปัญหาอย่างที่กล่าวไว้แล้ว ข้างต้น ก็เลยสับสนว่าทำไม เรียก CodeBehind แล้ว ถึงทำไม่ได้ หน่ะครับ
WebSite ไม่ต้อง compile เอาไป run ได้เลยครับ ถ้าสร้างแบบ Web Application ต้อง compile ก่อน เวลา Add file จะได้ *.aspx, *.aspx.cs, *.aspx.resx ครับ
ผมลองโหลดตัวอย่างในหน้าเว็บ code sample ตัวนี้มาดู ผมเข้าใจว่าเค้าก็สร้างเป็นแบบ solution ใช่ไหมครับ แต่ ทำไมเค้าจึงใช้ codeBehind ได้ ?? งงๆ หน่ะครับ
http://code.msdn.microsoft.com/CSASPNETGridView-5b16ce70
พอจะทราบปัญหาแล้วครับ พอดี ผมได้ไฟล์ *.cs กับไฟล์ *.aspx มา สองไฟล์ เวลาที่ผม add file exsit เข้าไป มันทำให้ขาดไฟล์ *.aspx.designer.cs ไป ทำให้ โค๊ดที่อยู่ใน *.cs มองไม่เห็น control ที่อยู่ในหน้า *.aspx หน่ะครับ

ผมกำลังหาทางเพิ่มไฟล์ *.aspx.designer.cs  ถ้าไม่ได้จริงๆ คงต้อง add file เข้าไปใหม่  U_U  ลำบากแน่ๆ
โทษทีผมบอกผิด อีก file นึงจะเป็น .aspx.designer.cs ไม่ใช่ .resx
เค้าสร้างแบบ Web Application

- ลองเลือกเมนู File ใน Visual Studio เลือก New Project... เลือก ASP.Net Web Site ดู
- แล้วลองเมนู File แล้ว New Web Site... ดูครับ

Related questions

+1 vote
0 คำตอบ
0 votes
0 คำตอบ
+1 vote
2 คำตอบ
+1 vote
1 คำตอบ
389 views ถามเมื่อ Jun 29, 2012 in ASP.net โดย PanCS13 (112 คะแนน)
...