如何在回发时将数据保留在ASP转发器中

用户2012384

以下是标记页面:

<%@ Page Title="" Language="C#" MasterPageFile="~/Master/MainPage.master" EnableViewState="true" AutoEventWireup="true" CodeBehind="edit.aspx.cs" Inherits="Website.View.edit" %>

...

 <asp:Repeater runat="server" ID="rptSample">
            <ItemTemplate>
                <asp:HyperLink runat="server" ID="refLink" href='http://www.sample.com' Text='Test data' />
                <asp:CheckBox runat="server" ID="chkbxDelete" Text="Delete" />
            </ItemTemplate>
            <SeparatorTemplate>
                <br />
            </SeparatorTemplate>
  </asp:Repeater>

这是我在后面的代码上绑定数据的方式:

protected void Page_Load(object sender, EventArgs e)
{
            rptSample.DataSource = getData();
            rptSample.DataBind();
}

我也尝试过以下方法:

protected void Page_Load(object sender, EventArgs e)
{
       if(!IsPostBack)
        {
            rptSample.DataSource = getData();
            rptSample.DataBind();
        }
}

并尝试获取btnSave_Click函数上的数据

protected void btn_save_Click(object sender, EventArgs e) 
{
  foreach(RepeaterItem item in rptSample.Items) 
  {
    CheckBox chkbx = (CheckBox) item.FindControl("chkbxDelete");
    if (chkbx.Checked) 
    {
        //Do something
    }
  }
}

如果未添加!IsPostBackrptSample.Items则将为空,但是如果将其删除,则复选框始终为false。

有什么问题??


编辑:根据用户要求,这是整页加载功能:

protected void Page_Load(object sender, EventArgs e)
{
      bindData();
}

protected void bindData()
{
    List<sp_SelectAttachments_Result> attachments = DAL.SelectAttachmentsByID(Request["ID"]);
    if (attachments.Count == 0)
        divAttachments.Visible = false;
    else
    {
        divAttachments.Visible = true;
        rptAttachments.DataSource = attachments;
        rptAttachments.DataBind();
    }
}

这是divAttachments和rptAttachments的标记页面

<div runat="server" id="divAttachments" visible="false">
        <asp:Repeater runat="server" ID="rptAttachments">
            <ItemTemplate>
                <asp:HiddenField Value='<%# Eval("ID") %>' runat="server" ID="hidID" />
                <asp:HyperLink runat="server" ID="refLink" href='<%# $"/Utils/getFile.ashx?ID={ID}" %>' Text='<%# ((sp_SelectAttachments_Result)Container.DataItem).FileName %>' />
                <asp:CheckBox runat="server" ID="chkbxDeleteAttachment" Text="Delete" />
            </ItemTemplate>
            <SeparatorTemplate>
                <br />
            </SeparatorTemplate>
        </asp:Repeater>
    </div>
丹尼斯·韦塞尔斯

我怀疑您的代码中有什么可以清除复选框或重置转发器控件的数据源。

我建议创建一个干净的页面并使用下面的代码(我已经测试过并且可以正常工作)。一旦工作缓慢,就开始向页面添加任何其他逻辑,直到找出导致问题的原因:

后面的代码:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        rptSample.DataSource = getData();
        rptSample.DataBind();
    }
}

private List<string> getData()
{
    return new List<string> { "1", "2", "3" };
}

protected void btn_save_Click(object sender, EventArgs e)
{
    foreach (RepeaterItem item in rptSample.Items)
    {
        CheckBox chkbx = (CheckBox)item.FindControl("chkbxDelete");
        if (chkbx.Checked)
        {
            System.Diagnostics.Debugger.Break();
        }
    }
}

.ASPX:

<form id="form1" runat="server">
    <asp:Repeater runat="server" ID="rptSample">
        <ItemTemplate>
            <asp:HyperLink runat="server" ID="refLink" href='http://www.sample.com' Text='Test data' />
            <asp:CheckBox runat="server" ID="chkbxDelete" Text="Delete" />
        </ItemTemplate>
        <SeparatorTemplate>
            <br />
        </SeparatorTemplate>
    </asp:Repeater>
    <asp:Button ID="btn_save" runat="server" Text="Save" OnClick="btn_save_Click" />
</form>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

按钮回发时,转发器中的TextBox消失了

来自分类Dev

如何在带有回发的转发器中的RadioButtonList中仅选择一个选项

来自分类Dev

如何在带有回发的转发器中的RadioButtonList中仅选择一个选项

来自分类Dev

回发后,转发器中的ASP.NET用户控件属性为null

来自分类Dev

如何将所选数据保留在表中?

来自分类Dev

更新气泡图中的数据时如何将圆圈保留在svg中

来自分类Dev

如何在方向改变时将图像保留在片段中

来自分类Dev

转发器控件中的按钮单击事件,以在asp.net C#中的同一转发器中显示数据

来自分类Dev

AngularJS-在嵌套的ng-repeaters中,如何在嵌套的转发器中获取外发转发器项的索引

来自分类Dev

在 ASP .NET CORE 中更新 Web 应用程序替换文件或删除文件,如何在更新时将文件保留在应用程序中

来自分类Dev

如何在Android中将要收集垃圾时将静态成员保留在“共享”首选项中

来自分类Dev

动态添加的控件中的值不保留在回发中

来自分类Dev

在MVC5中进行验证时,将数据保留在ViewModel中

来自分类Dev

将枚举值保留在asp.net中

来自分类Dev

将Python IDLE保留在启动器中

来自分类Dev

如何将值保留在Play框架中的inputPassword帮助器的字段中?

来自分类Dev

JS,将数组数据保留在sessionStorage中的问题

来自分类Dev

如何在悬停在菜单上时将其保留在下拉菜单中?

来自分类Dev

如何将逻辑推入模型而不是将其保留在控制器中?

来自分类Dev

AbortProcessingException将堆栈跟踪保留在服务器日志中,如何禁用此功能?

来自分类Dev

如何将图标保留在统一启动器中并从桌面删除?

来自分类Dev

如何将图标保留在统一启动器中并从桌面删除?

来自分类Dev

关闭后如何将Skype包装器保留在消息菜单中?

来自分类Dev

带有dbunit的phpunit:如何在各个测试中将数据保留在db中?

来自分类Dev

重用单元格时,如何将UISegmentedControl的选定段保留在UITableView中?

来自分类Dev

如何单独删除锚标签,但将文本保留在json数据中

来自分类Dev

如何仅将字符串保留在数据框列中

来自分类Dev

如何删除重复项但将最新数据保留在R中

来自分类Dev

刷新后如何将数据保留在localStorage中?

Related 相关文章

  1. 1

    按钮回发时,转发器中的TextBox消失了

  2. 2

    如何在带有回发的转发器中的RadioButtonList中仅选择一个选项

  3. 3

    如何在带有回发的转发器中的RadioButtonList中仅选择一个选项

  4. 4

    回发后,转发器中的ASP.NET用户控件属性为null

  5. 5

    如何将所选数据保留在表中?

  6. 6

    更新气泡图中的数据时如何将圆圈保留在svg中

  7. 7

    如何在方向改变时将图像保留在片段中

  8. 8

    转发器控件中的按钮单击事件,以在asp.net C#中的同一转发器中显示数据

  9. 9

    AngularJS-在嵌套的ng-repeaters中,如何在嵌套的转发器中获取外发转发器项的索引

  10. 10

    在 ASP .NET CORE 中更新 Web 应用程序替换文件或删除文件,如何在更新时将文件保留在应用程序中

  11. 11

    如何在Android中将要收集垃圾时将静态成员保留在“共享”首选项中

  12. 12

    动态添加的控件中的值不保留在回发中

  13. 13

    在MVC5中进行验证时,将数据保留在ViewModel中

  14. 14

    将枚举值保留在asp.net中

  15. 15

    将Python IDLE保留在启动器中

  16. 16

    如何将值保留在Play框架中的inputPassword帮助器的字段中?

  17. 17

    JS,将数组数据保留在sessionStorage中的问题

  18. 18

    如何在悬停在菜单上时将其保留在下拉菜单中?

  19. 19

    如何将逻辑推入模型而不是将其保留在控制器中?

  20. 20

    AbortProcessingException将堆栈跟踪保留在服务器日志中,如何禁用此功能?

  21. 21

    如何将图标保留在统一启动器中并从桌面删除?

  22. 22

    如何将图标保留在统一启动器中并从桌面删除?

  23. 23

    关闭后如何将Skype包装器保留在消息菜单中?

  24. 24

    带有dbunit的phpunit:如何在各个测试中将数据保留在db中?

  25. 25

    重用单元格时,如何将UISegmentedControl的选定段保留在UITableView中?

  26. 26

    如何单独删除锚标签,但将文本保留在json数据中

  27. 27

    如何仅将字符串保留在数据框列中

  28. 28

    如何删除重复项但将最新数据保留在R中

  29. 29

    刷新后如何将数据保留在localStorage中?

热门标签

归档