我自己写了一个日期控件因是用的是html中的文本控件所以在后台取值用的是
Request.Params["S_year"]现在都做好了,可问题出来了
1.我把此控件放到相应的页面中,是runat=server 为什么在codebehind 还是没有此控件的定义呢
2.为什么我在控件中增加了属性,在属性框中不显示出来呢,就只有,id,EnableViewState和Visible
3.只放一个控件还正常,可是放两个,问题又来了,用Request.Params["S_year"]明明只取一个控件的值却取了两个控件值如( '2005,2005' )它都取出来了,我该怎么办呢???????

解决方案 »

  1.   

    1,2两个问题请贴源码3.S_year 应该用控件的ClientID +"_S_year"来标致,确保Form中只有唯一的一个ID
      

  2.   

    谢谢!我在控件中增加了一个属性 我在页面中取的是控件的这个属性
    页面<%@ Register TagPrefix="dtp" TagName="DateTimePicker" Src="../Cls_Webself/DateTimePicker.ascx" %>
    <%@ Page language="c#" Codebehind="Wdd.aspx.cs" AutoEventWireup="false" Inherits="erp_web.lh_eg.Wdd" %>
    .......
    <form id="Wdd" method="post" runat="server">
      <dtp:datetimepicker id="DT" style="Z-INDEX: 105; LEFT: 21px; POSITION: absolute; TOP:   95px" Width="152px" runat="server"></dtp:datetimepicker>
    ......
    <dtp:DateTimePicker id="Dt1" runat="server"></dtp:DateTimePicker>......
    ---------------------
    .cs.......
    Cls_Webself.DateTimePicker d = (Cls_Webself.DateTimePicker)FindControl("DT1");
    if(d!=null)
    {
    Tex.Text = d.set_date;

    }
      

  3.   

    控件
    页面
    <%@ Control Language="c#" AutoEventWireup="false" Codebehind="DateTimePicker.ascx.cs" Inherits="Cls_Webself.DateTimePicker" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>...........
    <FONT face="宋体">
      <INPUT id="TB_cls_year" style="Z-INDEX: 105; LEFT: 1px; WIDTH: 33px; POSITION: absolute; TOP: 0px; HEIGHT: 22px" type="text" maxLength="4" size="1" name="TB_cls_year" value="<% = Str_cls_year %>" onfocus ="this.select();">&gt;
    </FONT>
    <-还有服务端的日历控件->
    ---------------
    .cs
     ...........
     public string Str_cls_year=System.DateTime.Today.Year.ToString();
    ..................public string set_date 
    {
        get
     {
                                  return Request.Params["TB_cls_year"];
       } 
    }
      

  4.   

    1、自定义Web服务器控件,你可以继承服务器Text控件,不要继承html的那个。
    2、增加属性后属性框是应该显示的。
    3、如果放多个控件,控件编号会自动增加的。不会出现你的问题。
    4、注意最好继承INameContain接口。保证控件名唯一。
      

  5.   

    不能用服务器Text控件因為有些用javascript 在事件裡的程序運行會出錯,只能用html控件
      

  6.   

    好像是由于Request.Params["TB_cls_year"] 取值的原因,对于页面来说此时有两个TB_cls_year 控件
    所以会出现这种情况