gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 02:33:45 25 4
gpt4 key购买 nike

问题描述:

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

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

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

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

可能的解决方案:

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

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

我的问题:您认为上述任何解决方案都可以吗?为什么?你能想到更好的吗?

最佳答案

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

或者,您必须编写某种回发函数来处理每次触发 select 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/

关于c# - 如何从客户端访问服务器端WebControl?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13762910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com