Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 相关输入的设计模式_Design Patterns_Web Applications_Input - Fatal编程技术网

Design patterns 相关输入的设计模式

Design patterns 相关输入的设计模式,design-patterns,web-applications,input,Design Patterns,Web Applications,Input,我的问题是一个设计问题: 假设我有一个数据输入网页,其中有4个下拉列表,每个列表取决于前一个列表,还有一组文本框 国家/地区(下拉列表) ddlState(下拉列表) 城市(下拉列表) ddlBoro(下拉列表) txtAddress(TxtBox) txtZipcode(TxtBox) 以及表示数据行的对象,每个数据行都有一个值: countrySeqid stateSeqid 城市化 婆罗鱼 地址 zipCode 当然,country、state、city和boro值将是一些

我的问题是一个设计问题:
假设我有一个数据输入网页,其中有4个下拉列表,每个列表取决于前一个列表,还有一组文本框

  • 国家/地区(下拉列表)
  • ddlState(下拉列表)
  • 城市(下拉列表)
  • ddlBoro(下拉列表)
  • txtAddress(TxtBox)
  • txtZipcode(TxtBox)
以及表示数据行的对象,每个数据行都有一个值:

  • countrySeqid

  • stateSeqid

  • 城市化

  • 婆罗鱼

  • 地址

  • zipCode

    当然,country、state、city和boro值将是一些查找表的主键值

当用户选择编辑该记录时,我会将其从数据库加载到页面中。 我遇到的问题是如何简化DropDownList的加载

我有一些代码,可以抓取对象,查看其值,并将它们移动到相应的输入控件中。但在这种情况下,我必须用可能的值加载ddlCountry,然后分配值,然后对其余的DDL执行相同的操作

我想我正在寻找一个优雅的解决方案。
我正在使用asp.net,但我认为这与问题无关。我正在研究更多的设计模式。

我以前也设计过这样的屏幕,asp.net确实很难做任何事情,但每次选择后都要回发,所以这有点重要

这与其说是设计模式的问题,不如说是服务级别契约的问题。网站的响应速度需要有多快?你用的是哪种连接?用户会确切地知道他们想要做哪些下拉选择,还是会花一些时间四处浏览?表单是否需要对移动设备友好

这些问题会影响您的设计。让我解释一下

在这里你可以做两件事。通常,您可能会选择混合方法,但极端情况如下:

  • 每个选择都会触发回发。通过查询服务以获得下一组选项并使用填充的新选项重建页面来处理请求。显然,这不是特别快或流线型,但它是最可靠和跨平台的
  • 当页面加载时,它在javascript中包含一个结构,描述将填充下拉列表的所有选项。你最后只会有一次回发。显然,这是非常快的,但不利于庞大的列表,不太便于移植,如果您需要选择链中的任何高级逻辑,这会带来一些困难 介于两者之间的一个可能的好方法是将javascript视为一级缓存,将服务器视为二级缓存。您已经在页面上嵌入了最常用的国家/地区,但是如果没有找到,您将触发ajax发帖以获取更多数据。当然,这对你来说还有很多工作要做


    所以是的。希望这对您有所帮助

    如果您将问题格式化以使其更具可读性,您更有可能得到回复。谢谢,我不知道它的格式如此糟糕谢谢您的回复,我不需要考虑移动兼容性。应用程序正在内部网中运行。我现在使用第一种方法,但我觉得它很笨拙,更糟糕的是,有些DDL依赖于两个父母的选择。(未包括实际示例,因为需要更多解释)。我想就像你说的,它应该是两者的混合体。再次感谢