2012-07-03 2 views
0

asp를 (를) 사용하고 있습니다. 나는 asp를 사용하여 웹 사이트를 구축했다. 나는 Artisteer를 사용하여 templete를 만듭니다. 로그인 페이지를 만들 때까지 모든 것이 잘 작동합니다. 내 Registration.aspx 페이지도구 상자 개체가 .cs 파일에서 인식되지 않습니다.

<@ Page Language="C#" MasterPageFile="~/design/MasterPage.master" AutoEventWireup="true" 
CodeFile="Registration.aspx.cs" Inherits="Registration" %> 

<@ Import Namespace="Artisteer" %> 

<@ Register TagPrefix="artisteer" Namespace="Artisteer" %> 

<@ Register TagPrefix="art" TagName="DefaultMenu" Src="DefaultMenu.ascx" %> 

<@ Register TagPrefix="art" TagName="DefaultHeader" Src="DefaultHeader.ascx" %> 

<@ Register TagPrefix="art" TagName="DefaultSidebar1" Src="DefaultSidebar1.ascx" %> 


asp:Content ID="PageTitle" ContentPlaceHolderID="TitleContentPlaceHolder" Runat="Server">Once Upon a Cake</asp:Content> 

asp:Content ID="MenuContent" ContentPlaceHolderID="MenuContentPlaceHolder" Runat="Server"> 
    <art:DefaultMenu ID="DefaultMenuContent" runat="server" /> 
</asp:Content> 

asp:Content ID="HeaderContent" ContentPlaceHolderID="HeaderContentPlaceHolder" Runat="Server"> 

art:DefaultHeader ID="DefaultHeader" runat="server" /> 
</asp:Content> 

asp:Content ID="SideBar1" ContentPlaceHolderID="Sidebar1ContentPlaceHolder" Runat="Server"> 
art:DefaultSidebar1 ID="DefaultSidebar1Content" runat="server" /> 
</asp:Content> 

<asp:Content ID="SheetContent" ContentPlaceHolderID="SheetContentPlaceHolder" Runat="Server"> 


    <artisteer:article ID="Article2" runat="server"><ContentTemplate> 

     <br /> 

     <table class="art-article" border="0" cellspacing="0" cellpadding="0"> 
     <tbody> 
     <tr> 
      <td>Name</td> 
      <td>User Name</td> 
      <td><asp:TextBox ID="textBoxUser" runat="server" Width="240" MaxLength="15" ></asp:TextBox> 
      </td> 
      <td> 
      <td> 

..........

과의 한 부분이 내 코드의 어느 부분이 많은 여기에

귀찮게하지주지 Registration.aspx.cs 파일은

using System; 

using System.Collections.Generic; 

using System.Web; 

using System.Web.UI; 

using System.Web.UI.WebControls; 

using System.Data.SqlClient; 

using System.Configuration; 


public partial class Registration : System.Web.UI.Page 

{ 

    protected void Page_Load(object sender, EventArgs e) 
    { 

     if (IsPostBack) 
     { 

      SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["RegConnectionString"].ConnectionString); 
      con.Open(); 
      string cmdStr = "Select coun (*) from Register where UserName='" + textBoxUser.Text + "'"; 
      SqlCommand userExist = new SqlCommand(cmdStr, con); 
      int temp = Convert.ToInt32(userExist.ExecuteScalar().ToString()); 
      if (temp == 1) 
      { 
       Response.Write("User Name already Exist!!! </br> Choose another"); 
      } 
     } 


    } 

입니다. 문제는 textBoxUser가 .cs 파일에서 인식되지 않는다는 것입니다. 누구든지 아이디어가 있습니까?

+0

당신이 볼 수있는 2 조 객체 .cs 파일에서? –

답변

0

아티클 (또는 블록)은 템플릿 제어입니다. 그래서 ContentTemplate 내의 컨트롤을 페이지에서 직접 참조 할 수 없습니다. 기사의 컨텍스트 내에서이 컨트롤을 찾아야합니다.

시도는 제 클래스

public override Control FindControl(string id) 
{ 
EnsureChildControls(); 
if (null != _contentPlaceholder && _contentPlaceholder.Controls[0] is TemplateContainer) 
return _contentPlaceholder.Controls[0].FindControl(id); 

return null; 
} 

에 다음 코드를 추가 한 다음이처럼 컨트롤을 참조 할 수 있습니다 :

TextBox txt = Article2.FindControl("textBoxUser") as TextBox; 

참조 : Artisteer Forums

관련 문제