在两个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时需要做什么。

任何输入是非常感谢!(我尽量让自己看得更清楚,但我的视野却很狭窄……)

在两个ASP文本框被填充后运行c#函数

你就要成功了

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