ID

2010-03-28 12 views
2

나는 다음과 같은 코드를 가지고 : 나는 그것을 찾을 수없는 의미, 그러나 DP1은 빨간색으로 밑줄ID

public System.DateTime startDateTime 
    { 
     get 
     { 
      return dp1.SelectedDate.Add(tp1.SelectedTime.TimeOfDay); 
     } 
     set 
     { 
      dp1.SelectedDate = value; 
      tp1.SelectedTime = value; 
     } 
    } 

이 뒤에 내 코드에서

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DurationPicker.ascx.cs" Inherits="Permias.DurationPicker" %> 
<%@ Register TagPrefix="Club" Namespace="ClubSite" %> 
<div class="controlblock"> 
    <table> 
     <tr> 
      <td> 
       Start Date: 
      </td> 
      <td> 
       <Club:DatePicker ID="dp1" runat="server" /> 
      </td> 
      <td> 
       <Club:TimePicker ID="tp1" runat="server" /> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       End Date: 
      </td> 
      <td> 
       <Club:DatePicker ID="dp2" runat="server" /> 
      </td> 
      <td> 
       <Club:TimePicker ID="tp2" runat="server" /> 
      </td> 
     </tr> 
    </table> 
</div> 

을 dp1 .. 왜 이래?

+0

오류 목록에 어떤 오류가 있습니까? 프로젝트를 만들거나 페이지를 실행하면 어떻게됩니까? – SLaks

답변

0

이들 중 누구도 내 문제를 해결하는 것 같다 ....

: 당신은 라인이 뭔가를해야합니다 이름 공간 아래에서 클럽 사이트

namespace ClubSite 
{ 
    public static class commonScript 
    { 

     public static void WritePopupRoutines(System.Web.UI.Page Page) 
     { 
      StringBuilder sb = new StringBuilder(); 
      sb = new StringBuilder(); 
      sb.AppendLine("var __popup_panel;"); 

      sb.AppendLine("function __popup_clear() {"); 
      sb.AppendLine(" if (__popup_panel != null) "); 
      sb.AppendLine(" {"); 
      sb.AppendLine(" document.getElementById(__popup_panel).style.display='none';"); 
      sb.AppendLine(" __popup_panel=null;"); 
      sb.AppendLine(" }"); 
      sb.AppendLine("}"); 
      sb.AppendLine("function __popup_losefocus(panel)"); 
      sb.AppendLine("{"); 
      sb.AppendLine(" if (!panel.contains(document.activeElement))"); 
      sb.AppendLine(" {"); 
      sb.AppendLine(" panel.style.display='none';"); 
      sb.AppendLine(" }"); 
      sb.AppendLine("}"); 

      Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "PopupRoutines", sb.ToString(), true); 
     } 
    } 

    public class DatePicker : WebControl, INamingContainer 
    { 
     private Calendar _innerCal; 
     private TextBox _innerTbx; 
     private string errorText = null; 
     private bool _panelvisible = false; 

     public DatePicker() : base(HtmlTextWriterTag.Div) 
     { 

     } 

     public System.DateTime SelectedDate 
     { 
      get 
      { 
       EnsureChildControls(); 
       System.DateTime d=System.DateTime.Now; 
       try 
       { 
        d = System.DateTime.Parse(_innerTbx.Text); 
        errorText = null; 
        _innerCal.SelectedDate = d; 
       } 
       catch 
       { 
        errorText = "Date needs to be specified as mm/dd/yyyy"; 
       } 
       return d; 
      } 
      set 
      { 
       EnsureChildControls(); 
       _innerCal.SelectedDate = value; 
       _innerTbx.Text = value.ToShortDateString(); 
      } 
     } 

     protected override void CreateChildControls() 
     { 
      base.CreateChildControls(); 
      _innerTbx = new TextBox(); 
      this.Controls.Add(_innerTbx); 

      _innerCal = new Calendar(); 
      _innerCal.SelectionChanged += new System.EventHandler(_innerCal_SelectionChanged); 
      _innerCal.VisibleMonthChanged += new MonthChangedEventHandler(_innerCal_MonthChanged); 
      Controls.Add(_innerCal); 
     } 

     protected override System.Web.UI.HtmlTextWriterTag TagKey 
     { 
      get 
      { 
       return HtmlTextWriterTag.Div; 
      } 
     } 

     protected override void AddAttributesToRender(System.Web.UI.HtmlTextWriter writer) 
     { 
      if (this.Width.IsEmpty) 
      { 
       this.Width = new Unit(150); 
      } 
      base.AddAttributesToRender(writer); 
     } 

     protected override void RenderContents(System.Web.UI.HtmlTextWriter writer) 
     { 
      _innerTbx.Attributes.Add("Align", "AbsMiddle"); 
      _innerTbx.Width = new Unit(100); 
      _innerTbx.RenderControl(writer); 

      string innerid = this.UniqueID + "_inner"; 

      writer.AddAttribute("Align", "AbsMiddle"); 
      writer.AddAttribute("src", "images/dropdownbtn.gif"); 
      writer.AddAttribute("onClick", "__datepicker_showpopup('" + innerid + "')"); 
      writer.RenderBeginTag(HtmlTextWriterTag.Img); 
      writer.RenderEndTag(); 

      if (errorText != null) 
      { 
       writer.AddStyleAttribute("color", "red"); 
       writer.AddStyleAttribute("display", "block"); 
       writer.RenderBeginTag(HtmlTextWriterTag.Span); 
       writer.Write(errorText); 
       writer.RenderEndTag(); 
      } 

      writer.AddStyleAttribute("position", "relative"); 
      writer.RenderBeginTag(HtmlTextWriterTag.Div); 

      writer.AddStyleAttribute("position", "absolute"); 
      writer.AddStyleAttribute("left", "0px"); 
      writer.AddStyleAttribute("top", "0px"); 
      writer.AddStyleAttribute("z-index", "100"); 

      string panelvisible = _panelvisible ? "block" : panelvisible = "none"; 

      writer.AddStyleAttribute("display", panelvisible); 
      writer.AddStyleAttribute("background-color", "white"); 
      writer.AddAttribute("id", innerid); 
      writer.AddAttribute("onfocusout", "__popup_losefocus(this)"); 
      writer.RenderBeginTag(HtmlTextWriterTag.Div); 

      _innerCal.RenderControl(writer); 

      writer.RenderEndTag(); 
      writer.RenderEndTag(); 
     } 

     protected override void OnPreRender(System.EventArgs e) 
     { 
      base.OnPreRender(e); 
      commonScript.WritePopupRoutines(Page); 
      StringBuilder sb = new StringBuilder(); 
      if (_panelvisible) 
      { 
       sb.AppendLine("__popup_panel = '" + this.UniqueID + "_inner';"); 
      } 
      sb.AppendLine("function __datepicker_showpopup(name)"); 
      sb.AppendLine("{"); 
      sb.AppendLine(" if (__popup_panel != null)"); 
      sb.AppendLine(" {"); 
      sb.AppendLine(" document.getElementById(__popup_panel).style.display='none';"); 
      sb.AppendLine(" }"); 
      sb.AppendLine(" __popup_panel=name;"); 
      sb.AppendLine(" var panel=document.getElementById(__popup_panel);"); 
      sb.AppendLine(" panel.style.display='block';"); 
      sb.AppendLine(" var links=panel.getElementsByTagName('A');"); 
      sb.AppendLine(" links[0].focus();"); 
      sb.AppendLine(" window.event.cancelBubble=true;"); 
      sb.AppendLine("}"); 
      Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "popup", sb.ToString(), true); 
      Page.MaintainScrollPositionOnPostBack = true; 
     } 

     private void _innerCal_SelectionChanged(object sender, System.EventArgs e) 
     { 
      EnsureChildControls(); 
      _innerTbx.Text = _innerCal.SelectedDate.ToShortDateString(); 
     } 

     private void _innerCal_MonthChanged(object sender, MonthChangedEventArgs e) 
     { 
      _panelvisible = true; 
     } 
    } 
} 
1

@Register 지시어에 더 많은 정보가 필요합니다. 이 컨트롤은 어디에 있습니까? 어셈블리 참조 또는 src 참조입니다.

+0

src 특성이 누락되었습니다. – citronas

+0

dp1은 datepicker입니다. – aherlambang

0

dp1은 코드 숨김에 정의되어야합니다. 디자이너의 도움을 받아 코드의 필드를 만듭니다. 그렇다면 DurationPicker.ascx.designer.cs 파일에 dp1 참조를 만들지 않았을 수 있습니다. 내가 App_Code 폴더가 있고 그 안에 내가 어떤 DataPicker.cs을 내 솔루션에

protected ClubSite.DatePicker dp1;