在两个ASP文本框被填充后运行c#函数
本文关键字:填充 运行 函数 文本 ASP 两个 | 更新日期: 2023-09-27 18:04:31
我一直在努力寻找这个问题的答案,但我找到的每个答案似乎都与我真正想要寻找的答案略有不同。
我需要检查,以确保两个ASP文本框已填写之前运行一个c#功能,将在文本框上工作。
目前,我正在使用代码隐藏检查,但它是草率的,必须回发工作。
所以我有:
<td>Start Date (mm/dd/yyyy):</td><td><asp:TextBox ID="startDate" runat="server"></asp:TextBox></td>
<ajax:CalendarExtender ID="ce1" runat="server" TargetControlID="startDate"></ajax:CalendarExtender>
<td>End Date (mm/dd/yyyy):</td><td><asp:TextBox ID="endDate"></asp:TextBox></td>
<ajax:CalendarExtender ID="ce2" runat="server" TargetControlID="endDate"></ajax:CalendarExtender>
所以我需要一个JS函数来检查如果两个字段都是空的,在使用AJAX运行一个c#程序之前。我是ASP和JS的新手,但这个问题出现了,并认为这将是一个(某种)容易解决的问题。
我会假设如下:
function checkDates(startid, endid) {
var s = document.getElementById(startid);
var e = document.getElementById(endid);
if( s != '' && e != ''){
//Use ajax to run C# function
}}
应该工作。但是我似乎找不到任何接近它的例子来了解我在工作ASP而不仅仅是HTML时需要做什么。
任何输入是非常感谢!(我尽量让自己看得更清楚,但我的视野却很狭窄……)
你就要成功了
function checkDates(startid, endid) {
var s = document.getElementById(startid);
var e = document.getElementById(endid);
if( s.value != '' && e.value != ''){
//Use ajax to run C# function
}
}
您还需要在服务器端检查,以确保所提供的参数不是null或空
这应该适合您。我建立了一个物品来帮助保持事物的组织性。使用ClientID获取元素,并将引用存储在对象中。
无论你绑定的是什么处理程序只需要调用Page.Handlers.CheckDates();
var Page =
{
Members:
{
startDate: document.getElementById('<%=startDate.ClientID %>'),
endDate: document.getElementById('<%=endDate.ClientID %>')
},
Handlers:
{
CheckDates: function ()
{
if (Page.Members.startDate.value.length > 0 && Page.Members.endDate.value.length > 0)
{
Page.Ajax.ValidateDates();
}
}
},
Ajax:
{
ValidateDates: function ()
{
//Put you ajax code here
}
}
}
除了Kami的回答之外,我相信asp.net会自动在所有asp.net控件前添加一个标记来区分它们。如果你没有自己更改它,我相信默认是"ct100_"。所以,如果你使用jQuery和不使用ajax调用来获取ClientID的选择器将看起来像"#ct100_idname"。
http://www.asp.net/web-forms/tutorials/master-pages/control-id-naming-in-content-pages-cs 编辑:您还可以使用内联服务器调用来获取asp.net控件的ID
http://weblogs.asp.net/asptest/archive/2009/01/06/asp-net-4-0-clientid-overview.aspx