我想记录的是时间的控制,如果checkbox选中,TextBox默认显示当前日期,如果checkbox不选中,TextBox默认值是""
如果设置checkbox的postback属性是true,用C#代码在服务器端可以很容易完成
如果这样实现,页面会reload,因为数据要返回到服务器端,所以要在客户端实现
方法:用Attributes从服务器端给客户端添加事件,用elements读取客户端表单里的控件
原因:
1、在服务器端,我不知道客户端的控件名,在客户端,我不可以访问服务器端的控件
2、因为CheckBox和TextBox在FormView的模版里,所以我不可以在aspx页面用aspnetForm.<%= this.服务器端控件ID.ClientID %>访问控件
实现:
1、看这一段,是实现把当前日期转换成yyyy-MM-dd的字符串格式:
<html>
<script type="text/javascript">
var today="";
var d = new Date();
var yy = d.getFullYear();
var mm = d.getMonth() + 1;
var dd = d.getDate();
mm=mm<10?"0"+mm:mm;
dd=dd<10?"0"+dd:dd;
today=yy + "-" + mm + "-" + dd;
document.write(today);
</script>
</html>
2、在asp.net里实现
aspx页面里相关的设置:
cs页面里相关设置:
protected void FormView1_DataBound(object sender, EventArgs e)
{
CheckBox mycb = new CheckBox();
mycb = (CheckBox)FormView1.FindControl("CheckBox1");
if (mycb != null)
{
mycb.Attributes.Add("onclick", "iniRemindTime(this)");
}
}