![]() |
1
4
我已经编码了大约一天,使用我在问题中建议的第三个选项——老派的数据绑定控件,我很好地完成了这个工作。事实上,我只是在被迫详细写下这个问题的时候才想到这个主意——这不是一直都发生在你身上吗? 我将searchCriterionControl放入一个asp:repeater并将其绑定到我的对象集合。对于字段选择器,我将一个asp:DropDownList放在嵌套的asp:Repeater中,并将字段数组绑定到它。所有的东西都很好地工作,保持状态,实际上只需要很少的代码。所以我从不需要动态地向页面添加控件,谢天谢地。 感谢你的建议,恩德,马特和安德烈。 |
![]() |
2
2
由于2个小时内没有其他人对此进行过尝试,所以我将用一种完全不依赖于ViewState的解决方案(或Postbacks的ASP.NET模型)来向圈中扔帽子。 如果您用jquery获取了所有输入值,而不是对页面(或新的results.aspx页面)执行回发操作,该怎么办?或者,您可以使整个事情异步化,对Web方法执行Ajax请求,得到结果,并根据需要在客户端进行填充? 不幸的是,您必须重新构造用于构造搜索查询的控件类型,因为该数据不会随ViewState一起传递。但我想您已经需要将输入数据转换为查询表单了。 读 here 有关使用jquery命中ASP.NET页方法的详细信息。记住-page方法必须是静态的(这是一个简单的监督)。 我不知道您在服务器端做什么来构造您的查询——但是我会的。 高度地 推荐Linq。我以前做过一个类似的“高级搜索”功能,经过几次不同的尝试,我发现linq是解决这个问题的一个很好的工具,不管我是用linqtosql访问SQL还是只访问内存中的对象集合。 这非常有效,因为1)Linq被延迟执行,2)Linq查询返回另一个可查询对象。这里的含义是,当您从输入构造LINQ查询时,您可以将它们链接在一起,而不必将单个大型子句转换为SQL或您正在使用的任何后台存储(我的一个尝试是用字符串构造SQL子句,但仍然通过用于SQL注入保护的sqlparameters传递输入数据)。当手工制作的LINQ的数量级更容易理解和实现时,它是混乱和复杂的。 例如:
由于延迟执行和可查询的返回类型,您可以整天将LINQ查询连接到此表达式,并让它担心执行时的实现细节(例如转换为SQL查询)。 |
![]() |
3
2
我无法为您提供所需的具体步骤,但我强烈建议您研究ASP.NET页面生命周期。我曾经创建了一个用户控件作为DLL。我必须在生命周期的特定步骤中捕获回发数据,并在其他步骤中重新创建和重新绑定数据。此外,像viewstate这样的thinkgs也只能在某些点上使用。我知道我必须重写init、prerender和其他一些方法。 很抱歉,我帮不上忙,但我身上没有密码(是给一个老雇主的)。我希望这有帮助。 |
![]() |
4
2
如果要动态地将控件添加到控件树中,还需要在后置时添加它们。只需调用在page_load或page_init上构建控件的方法,控件在回发时应保留在page上。 |
|
callum · 如何识别数组中与给定序列不匹配的元素? 2 年前 |
![]() |
Sab · 输入为空时,搜索结果元素未隐藏 3 年前 |
![]() |
Chaz Cosby · 如何添加更改api地址的搜索栏? 3 年前 |
![]() |
user3669555 · 多维数组搜索部分单词或短语并移除键 7 年前 |
![]() |
Yohan · 根据用户输入显示或隐藏div 7 年前 |
|
Shasocais · Prolog,基本情况失败的问题 7 年前 |
|
Den · C#在列表框中搜索项目1 7 年前 |
![]() |
Eugene Barsky · Perl 6中多针的索引 7 年前 |