我在每一天下加了一个textbox,现在要通过一个按钮给每个日期下的textbox赋值,再通过一个按钮取出所有textbox中的值。如何实现?
       protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
        {
            if (e.Day.IsOtherMonth)
            {
                e.Cell.Controls.Clear();            }
            else
            {
                string num = e.Day.Date.Day.ToString();
                e.Cell.Controls.Add(new LiteralControl("<br /><input id='txtD"+num+"' name='txtD"+num+"' runat='server' type='text' style='width:50px;;text-align:center' />"));
            }
        }

解决方案 »

  1.   

    JS遍历所有的text然后读取或者赋值
    $("input[type='text']").each(function(){
    $(this).val('赋值');
    })
      

  2.   

    对每一个Textbox有可能要赋一个不同的值,然后取出值来写入数据库中
      

  3.   

    protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
        {
            if (e.Day.IsOtherMonth)
            {
                e.Cell.Controls.Clear();        }
            else
            {
                int num = e.Day.Date.Day;
                string value = "";
                if (setnum == num) value = setvalue;
                e.Cell.Controls.Add(new LiteralControl("<br /><input id='txtD" + num + "' value='"+value+"'  name='txtD" + num + "' runat='server' type='text' style='width:50px;;text-align:center' />"));
            }
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            SetValue(1, "hello");
        }    protected void Button2_Click(object sender, EventArgs e)
        {
            string value = GetValue(1);
            Response.Write(value);
        }    private int setnum = 0;
        private string setvalue = "";
        private void SetValue(int num, string value)
        {
            setnum = num;
            setvalue = value;
        }    private string GetValue(int num)
        {
            return Request.Form[string.Format("txtD{0}", num)];
        }
      

  4.   

    取值似乎不行,所有的txtbox是在Calendar控件中的,Request.Form[string.Format("txtD{0}", num)]似乎取不到里面的控件
      

  5.   

    Request.Form[string.Format("txtD{0}", num)]
    是根据input的name属性来取值。
      

  6.   

    另外有一个问题
            protected void Button1_Click1(object sender, EventArgs e)
            {
                for (int i = 1; i <= 31; i++)
                {
                    SetValue(i, "A");
                }        }
    当我这样更新时,只有31号的这一天有值A
      

  7.   

    建议你建个数组,存下31天的数据,然后在Calendar1_DayRender时一次性更新。
    protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
        {
            if (e.Day.IsOtherMonth)
            {
                e.Cell.Controls.Clear();        }
            else
            {
                int num = e.Day.Date.Day;
                string value = values[num-1];
                e.Cell.Controls.Add(new LiteralControl("<br /><input id='txtD" + num + "' value='"+value+"'  name='txtD" + num + "' runat='server' type='text' style='width:50px;;text-align:center' />"));
            }
        }
        private string[] values = new string[31];
        private void SetValue(int num, string value)
        {
            for (int i = 0; i < 31; i++)
            {
                values[i]="A";
            }
        }
      

  8.   

    有点错误    protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
        {
            if (e.Day.IsOtherMonth)
            {
                e.Cell.Controls.Clear();        }
            else
            {
                int num = e.Day.Date.Day;
                string value = values[num-1];
                e.Cell.Controls.Add(new LiteralControl("<br /><input id='txtD" + num + "' value='"+value+"'  name='txtD" + num + "' runat='server' type='text' style='width:50px;;text-align:center' />"));
            }
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            for (int i = 1; i <= 31; i++)
            {
                SetValue(i, "A");
            }
        }    private string[] values = new string[31];
        private void SetValue(int num, string value)
        {
            values[num - 1] = value;
        }
      

  9.   

    我用Dictionary可以赋值了,但取值还是有问题,有什么其它的取值方法没,用你的那种取不到值。
            private static Dictionary<int, string> dayShift = new Dictionary<int, string>();        protected void Page_Load(object sender, EventArgs e)
            {        }        protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
            {
                if (e.Day.IsOtherMonth)
                {
                    e.Cell.Controls.Clear();            }
                else
                {
                    int num = e.Day.Date.Day;
                    string value = "";
                    foreach (KeyValuePair<int,string> pair in dayShift)
                    {
                        if (pair.Key == num)
                        {
                            value = pair.Value;
                        }
                    }
                    e.Cell.Controls.Add(new LiteralControl("<br /><input id='txtD"+num+"' value='"+value+"' runat='server' type='text' style='width:50px;;text-align:center' />"));
                }
            }
            protected void Button1_Click1(object sender, EventArgs e)
            {
                int sday = Int32.Parse(txtSday.Text);
                int eday = Int32.Parse(txtEdat.Text);
                string shift = txtShift.Text;
                for (int i = sday; i <= eday; i++)
                {
                    dayShift.Add(i,shift);
                }        }        protected void Button2_Click(object sender, EventArgs e)
            {
               string ii= (Calendar1.FindControl("txtD1") as TextBox).Text;
               Response.Write(ii);
            }
      

  10.   

    xcm9422,能加你QQ请教一下不,我QQ是45263595,可以的话你加我
      

  11.   

    你在Calendar的cell里面添加了input
    <input type="text" name="txtD1" style="width:50px;text-align:center" />这里面 name="txtD1" 是关键,对应的在服务器端就可以通过 Request.Form["txtD1"] 取到textBox的值。
    你上面的代码中忘了给input加入name属性。