我正在使用VB ASP.net并返回结束为SQL我必须从日历中选择日期我使用javaScript日历作为客户端编码和其他控件,当我的页面获得回发时我丢失了日历值我被选中但我必须保留日期,直到我点击这里的保存按钮是TextBox输入
<input name="txtpodate" id="inputField00" type="text"
style="width:28px; font-family:Segoe UI; font-size:14pt; height: 20pt; background-color: #3366FF;"
onclick ="a();" />
我使用过Hidden Field,onblur,onFocus事件,但它没有工作,
日历功能
<link rel="stylesheet" type="text/css" media="all" href="jsDatePick_ltr.min.css" />
<script type="text/javascript" src="jsDatePick.min.1.3.js" ></script>
<script type="text/javascript" id ="calender">
function setCurrentDate() {
var d = new Date();
var month = new Array();
month[0] = "JAN";
month[1] = "FEB";
month[2] = "MAR";
month[3] = "APR";
month[4] = "MAY";
month[5] = "JUN";
month[6] = "JUL";
month[7] = "AUG";
month[8] = "SEP";
month[9] = "OCT";
month[10] = "NOW";
month[11] = "DEC";
var mnth = month[d.getMonth()];
var convertedStartDate = new Date();
var day = convertedStartDate.getDate();
var year = convertedStartDate.getFullYear();
var shortStartDate = day + "-" + mnth + "-" + year;
document.getElementById("inputField00").text = shortStartDate;
document.getElementById("inputField").value = shortStartDate;
document.getElementById("inputField0").value = shortStartDate;
}
function a() {
new JsDatePick({
useMode: 2,
target: "inputField00",
dateFormat: "%d-%M-%Y"
});
new JsDatePick({
useMode: 2,
target: "inputField",
dateFormat: "%d-%M-%Y"
});
new JsDatePick({
useMode: 2,
target: "inputField0",
dateFormat: "%d-%M-%Y"
});
setCurrentDate();
};
</script>
</asp:Content>
有人能帮助我吗?
答案 0 :(得分:1)
添加runat =&#34;服务器&#34;你的意见!
答案 1 :(得分:1)
默认情况下,HTML表单字段在回发后不会保持其状态,因为HTTP是无状态的。你可以做的是创建一个隐藏的值(你已经尝试过)并从C#中设置它的值。在文档加载的Javascript中,检查隐藏字段是否有值,如果是,则将日历设置为它,否则不执行任何操作。
在.aspx页面中添加隐藏字段:
<asp:HiddenField ID="hidden" runat="server" />
在代码隐藏中更改此字段的值:
protected void Page_Load(object sender, EventArgs e)
{
hidden.Value = CurrentDate;
}
编写以下脚本以访问该值并将其放入任何变量中:
<script type="text/javascript">
if (document.getElementById("MainContent_hidden") != undefined) {
var hiddenVal = document.getElementById("MainContent_hidden").value;
document.getElementById("inputField00").text = hiddenVal;
document.getElementById("inputField").value = hiddenVal;
document.getElementById("inputField0").value = hiddenVal;
}
答案 2 :(得分:0)
尝试覆盖您的页面在标记中加载这样的事件。
function pageLoad(sender, args)
{
setCurrentDate();
}
这将重置帖子后的日期。让我知道这是否有效。
答案 3 :(得分:0)
修改输入标记,如下所示添加runat = server
<input runat="server" name="txtpodate" id="inputField00" type="text"
style="width:28px; font-family:Segoe UI; font-size:14pt; height: 20pt; background-color: #3366FF;"
onclick ="a();" />
然后编辑脚本以从输入字段
获取新生成的clientID在
document.getElementById("<%= inputField00.ClientID %>").text = shortStartDate;
和
new JsDatePick({
useMode: 2,
target: "<%= inputField00.ClientID %>",
dateFormat: "%d-%M-%Y"
});