填写两个ASP TextBox后运行C#函数

时间:2014-05-20 21:24:49

标签: c# javascript asp.net ajax

我一直试图找到答案,但我发现的每一个答案似乎与我真正想要的东西有点不同。

我需要检查以确保在运行可以对文本框起作用的C#函数之前填写了两个ASP文本框。

目前,我正在使用codebehind进行检查,但它很草率,必须回发才能工作。

所以我有:

<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>

因此,在使用AJAX运行C#程序之前,我需要一个JS函数来检查两个字段是否为空。我是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时我需要做什么。

非常感谢任何输入! (我试图尽可能清楚,获得隧道视野......)

3 个答案:

答案 0 :(得分:0)

你快到了

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或为空。

答案 1 :(得分:0)

这对你有用。我构建了一个对象来帮助保持组织有序。使用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
        }
    }
}

答案 2 :(得分:-1)

除了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