我在每一天下加了一个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' />"));
}
}
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' />"));
}
}
$("input[type='text']").each(function(){
$(this).val('赋值');
})
{
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)];
}
是根据input的name属性来取值。
protected void Button1_Click1(object sender, EventArgs e)
{
for (int i = 1; i <= 31; i++)
{
SetValue(i, "A");
} }
当我这样更新时,只有31号的这一天有值A
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";
}
}
{
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;
}
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);
}
<input type="text" name="txtD1" style="width:50px;text-align:center" />这里面 name="txtD1" 是关键,对应的在服务器端就可以通过 Request.Form["txtD1"] 取到textBox的值。
你上面的代码中忘了给input加入name属性。