如何从客户端访问服务器端WebControl? - c#

问题描述:

我有一个带有下拉列表和文本框的简单对话框。
根据下拉列表的值,所需的值可以是简单文本,日期或数据库中的特定文本。
对于第一种情况,我拥有的简单文本框效果很好。
对于第二种情况,我需要一个日期选择器。
对于第三种情况,我保留了文本框,但在其上添加了自动完成功能。

我的问题是第二种情况。我尝试了JQuery Datepicker,它工作正常,但我需要使用另一个(特定于框架的)日期选择器,它是服务器端Web UI控件。

从下拉列表中选择日期类型后,我将隐藏文本框(使用JQuery),并显示(隐藏的)日期选择器,反之亦然。隐藏工作正常,但是当我尝试保存时,隐藏DatePicker时无法识别服务器端的保存功能。
我需要这样做的原因是因为我想知道何时从DatePicker或Textbox中保存值,具体取决于当前可见的那个。

我尝试了与CSS相关的所有内容,但服务器似乎无法将这些属性识别为true。

可能的解决方案:

1)我可以做一个“黑客”的解决方案,并添加一个隐藏的文本框,并在每次切换日期选择器时在其中传递一个真假字符串。这样,我可以在保存时检查文本框的值,以了解日期选择器是否被隐藏。

2)另一个(当前正在测试)是在.cs文件中创建一个void函数,该函数接受布尔输入并设置一个自定义可见性属性,该属性将添加到datepicker的框架中为true或false。
每当我切换日期选择器时,我都会使用AJAX调用来调用该函数并更改服务器端的日期选择器属性。
但是我不知道该属性是否会保持更改,直到我单击“保存”,否则它将以某种方式返回其默认值。

我的问题:
上面的任何解决方案对您来说都可以,为什么?
你能想到更好的吗?

参考方案

我认为最好的选择是始终在页面中保留3个表单控件,并使用选择框的display事件通过jquery轻松切换其change状态。这样,您可以在表单验证期间简单地删除未使用的表单元素,然后提交使用的字段。

另外,您还必须编写某种回发函数来处理每当选择change被触发时表单的该部分。

-编辑-

这是您可以使用的表单验证示例:

$('form').submit(function(e){
    e.preventDefault();

    if($('select.group', this).val() == "datepicker"){
        // Remove the other elemnts from the DOM
        $('input.group, textbox.group').remove();
    }

    // Submit the form
    $(this).submit();
});

以下是remove方法的jQuery文档:http://api.jquery.com/remove/

退出时发送电子邮件 - javascript

我有一个在ASP.NET 3.5框架上编写的应用程序,它由多个部分组成。比方说,我添加到其中的部分涉及任务生成和更新。目前,我正在尝试添加一项功能,以在我退出任务更新时发送电子邮件更新。我需要考虑几个问题:1)当用户从任务更新导航到应用程序的任何其他部分时,我需要发送电子邮件更新;2)当用户从一个任务导航到另一个任务时(例如,手动更改URL中的任务ID,或从…

在C#中将文本转换为绣花针 - javascript

                                                                                                                    我正在像http://www.vistaprint.in/vp/ns/easypath/studio.aspx?template…

javascript popupwindow之后的行如何工作? - javascript

好的,我有一个来自后面代码的方法,可以创建一个popupwindow。然后有一行代码要在那之后执行,我想知道那行代码何时执行,是在使用popupwindow之后执行还是在创建popupwindow之后执行?例如:void exPopupWindowMethod() { string scr = "window.open('exampleP…

.NET C#Webbrowser填充输入,不带ID或类名 - javascript

我需要在网络浏览器中填写一个输入,但这不起作用。我认为必须使用name属性来完成,但是怎么做呢?foreach (HtmlElement login in webBrowser1.Document.GetElementsByTagName("input")) { if (login.GetAttribute("name"…

jQuery val函数在隐藏字段上不起作用? - javascript

这是我的HTML代码:<div style='display:none;' id='allformid'> <div> <form action='#'> <input type='text' name='name' …