2011-08-30 36 views
1

我正在使用asp.net C# 我也在使用jQuery UI日历控件。 calendar control从输入控件获取数据到后面的代码

看来日历控件想要使用ID为“datepicker”的输入控件工作。

<input type="text" id="datepicker" /> 

我想在我的代码使用输入控件的值背后,但看到它是如何不是一个asp.net控制,我不知道我怎么可以在代码中引用它的后面。

有谁知道如何在代码后面得到输入控件的值吗?

回答

10

使用

<input type="text" id="datepicker" name="datepicker" /> 

,并在后面的代码:

Request.Form["datepicker"] 

事实上,申请表格属性填充表单值。

+0

Bang!你击败了我! –

0

如果你想使用基本形式拉,你需要添加一个名称属性:

<input type="text" id="datepicker" name="datepicker" /> 

if(Page.IsPostBack) 
{ 
    string value = Request.Form["datepicker"]; 
} 

或者,你可以标记作为一个HtmlInputControl

<input type="text" id="datepicker" runat="server" /> 

System.Web.UI.HtmlControls.HtmlInputControl datepickerControl = this.FindControl("datepicker") as System.Web.UI.HtmlControls.HtmlInputControl; 

if(datepickerControl != null) 
    string value = datepickerControl.Value; 
+0

添加runat = server不会更改页面上呈现的ID? – onof

+0

道歉。是的,它会更改页面上呈现的ID。如果您想在ASP.NET 4中使用'ClientIDMode ='Static'',或者如果您想通过jQuery选择生成的id,则可以使用'$('<$ = datepicker.ClientID%>')'。 – Tejs

0

您可以通过访问该值像onof这样的Request对象写道,或者您可以通过添加属性runat将每个html标签转换为服务器控件:

<input type="text" id="datepicker" runat="server" ClientIdMode="static" /> 

属性ClientIdMode =“static”确保标记ID不会被ASP.NET运行时更改。

然后您可以通过自动生成的成员datePicker访问输入。

0

既然你明确地说代码隐藏,我假设你可能想留在WebForms/Controls模型?使用clientidode你可以做到这一点,同时还有日历的确定ID值。

<asp:TextBox id="datepicker" ClientIDMode="Static" runat="server" /> 

然后,您可以像平常一样直接与代码隐藏控件进行交互。

但是,日历控件不需要特定的ID。你可以用你想

<asp:TextBox id="DateTextBox" runat="server" /> 

<script> 
$(function() { 
    $("#<%=DateTextBox.ClientID%>").datepicker(); 
}); 
</script> 
1

任何ID在这里就不得不提到它包含在C# 字符串email = txtemail.Value.ToString输入标签

<input name="txtemail" id="txtemail" runat="server" type="text" class="cssspa" form="form"/> 

表单名称()对其进行初始化;

现在你可以从文本框中获取数据

+0

如果OP不需要服务器控制,该怎么办? – Cris

相关问题