首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >呈现多个日历臃肿的html,陷入下一页

呈现多个日历臃肿的html,陷入下一页
EN

Stack Overflow用户
提问于 2009-07-17 16:03:59
回答 5查看 1.1K关注 0票数 1

注意:由于这是继承的遗留代码,所以我使用的是不完整的控件,但如果这是一个更好的解决方案,我不会超过用ASP.NET控件重写。

我有一个Repeater控件,它使用一个完整的WebDateChooser来选择记录的日期。假设Repeater中的每个项目都代表一个客户,而我正在选择激活日期或类似的内容。它可以是任何时间过去,现在,或未来。

当您将此控件呈现20次时,它会写入所有用于显示所有日期(月名、工作日等) 20次的重html,并使html显着膨胀。这使得浏览器在任何合理的时间内都很难呈现页面,即使是20条记录(在中继器上实现分页只是为了防止浏览器在庞大的页面上崩溃)。对于标准的ASP.NET日历控件来说,这也是一个较小(但仍然很重要)的程度。

我要找的是一种可能让所有20个日期选择者共享一个日历的资源的方法,这样他们就不需要为显示冗长的日期而呈现自己的字符串和垃圾了。

编辑:--我知道很多用户都没有使用过,但是在ASP:日历控件中内置的标准仍然是如此。把一个放进一个中继器,显示n> 20次。在呈现时,它会使浏览器陷入困境。

另外,为了澄清这一点对任何人的潜在解决方案都很重要,这个代码库在.NET 2.0上,必须支持IE6。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-07-20 22:28:00

您可能考虑的另一件事是将日历的一个实例放在页面上。当用户单击“激活”日历的文本框时,可以使用客户端javascript框架(如jquery )来显示日历,并将其移动到正确的预期位置。选定日期后,将所选日期存储在正确的文本框中,并再次隐藏日历。您将不得不编写一些javascript,但它比下载所有额外的膨胀!

票数 2
EN

Stack Overflow用户

发布于 2009-07-22 06:39:19

如果您要查找的是在网格中的每个日期字段上调用和显示的数据表,则调用JavaScript日历是最有效的。查看JQuery ui日历,然后将调用放在每个字段上--参见: jqueryui.com/demos/。

注意,类是相同的,ID是不同的:

代码语言:javascript
运行
复制
<input type="text" class="datepicker" id="d1" />
<input type="text" class="datepicker" id="d2" />

然后JQuery选择css类:

代码语言:javascript
运行
复制
$(.datepicker.each(function() {
  $(this).datepicker();
});

旧的ASP.Net解决方案是在触发单击for时,在服务器上声明并动态实例化控件。很多博客上都有这样的例子。或者,可以在页面加载时创建其中的20个,并将其放置在一个数据集或其他东西中。但是,如果数据集有100个条目呢?它不能缩放。

但是AJAX控件工具箱中有一个日历,它只在面板上创建一次,然后在告诉它的地方显示该面板。这是一个日历,显示了很多次。

代码语言:javascript
运行
复制
<asp:Panel ID="panelCal" runat="server">      
  <asp:UpdatePanel ID="update" runat="server">           
    <ContentTemplate>   
    <asp:Calendar ID="theonlyCal"runat="server"/>           
    </ContentTemplate>      
  </asp:UpdatePanel>
</asp:Panel>

现在假设有20行:

代码语言:javascript
运行
复制
<asp:TextBox ID="twenty" runat="server" /> 

现在,每个文本框都需要一个弹出控件扩展程序。

代码语言:javascript
运行
复制
<ajaxToolkit:PopupControlExtenderID="twentExtenders"runat="server"
TargetControlID="twenty"
PopupControlID="panelCal" 
Position="Bottom" /> 

ASP.NET AJAX可以使用大量的带宽。

票数 2
EN

Stack Overflow用户

发布于 2009-07-17 16:09:39

我没有使用您是的控件,所以我不能说这个是否适合您,但我强烈建议您:http://www.dynarch.com/projects/calendar/是一个javascript日历,所以用户只下载js包含一次。在此之后,创建调用只需几行。

它不能立即“拖放”与ASP.Net兼容。我建议将其包装在用户控件中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1144223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档