【问题标题】:how to clear all the items and add new item in the asp.net checkboxlist using javascript如何使用javascript清除所有项目并在asp.net复选框列表中添加新项目
【发布时间】:2012-02-01 15:33:53
【问题描述】:

我有一个复选框列表,例如

<asp:CheckBoxList id="CheckBoxList1" runat="server"  >
 <asp:listitem Value="1">Item 1</asp:listitem>
  <asp:listitem Value="2">Item 2</asp:listitem>
</asp:CheckBoxList>`.

我需要从复选框列表中清除所有项目,例如项目 1 和项目 2,并使用 javascript 在复选框列表中添加新值,例如“项目 3”。现在谁能知道这个问题的解决方案?

谢谢...

【问题讨论】:

  • 只是好奇,因为这是 .NET 为什么需要 java 脚本..?
  • 您可以使用JS将其更改为第3项,没问题但是如果您在客户端使用JS更改它,您如何在服务器端使用它?你最终会得到一个糟糕的网络应用程序......对吗?
  • 你不能使用 JavaScript 做到这一点。试试 Ajax 工具包控件。

标签: javascript c# asp.net checkboxlist


【解决方案1】:

仅作记录:&lt;asp:CheckBoxList ...&gt; 是一个服务器端控件。如果您删除这些项目并使用 Javascript(客户端)添加一个新项目,然后您将回发到服务器,您将丢失在客户端完成的所有内容。

我的建议是:回发到服务器并使用CheckBoxList 服务器端标准事件处理项目的删除和添加操作。会简单很多!

【讨论】:

  • 好的。你能告诉我如何在 javascript 中添加 cxheckboxlist 项目吗?
  • 您仍想使用 JavaScript 将项目添加到 CheckBoxList?您不是说如何使用服务器端事件添加项目吗?
【解决方案2】:

删除不是问题,但是如果您添加新值然后执行回发,您将开始收到来自 ASP.NET 的错误。如果它看到从静态源(下拉列表、复选框列表、单选按钮列表等)发回的信息不是所提供的发送选项之一,那么它假定某些恶意用户正在尝试滥用应用程序并且它吓坏了(打破页面)。

如果您不想回发整个页面来执行此更改,那么您可以将复选框列表包装在 UpdatePanel 中(以及触发列表更改所需的任何内容,如果适用),以便不是为了更改项目而进行的整页回发。这将意味着编写服务器端代码来更改列表中的项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-17
    • 1970-01-01
    相关资源
    最近更新 更多