OnItemDataBound에서 작성한 PDF 축소판 이미지가 포함 된 ListView가 있습니다. 모든 미리보기 이미지에는 업로드 할 페이지를 선택하는 확인란이 있습니다. 모든 것이 잘 작동합니다 - 지금까지. 지금은 모든 페이지를 선택하는 또 다른 체크 박스를 만든 문제입니다 : 내가 체크 박스를 선택하면 내 ListView에있는 모든 미리보기 썸네일이 내 ListView에있다onItemDataBound를 사용하여 ListView의 모든 확인란을 선택/선택 취소하십시오.
사라 : 이것은 내 CheckBox에있다
<asp:ListView ID="pdfPagesListView" runat="server" OnItemDataBound="pdfPagesListView_ItemDataBound">
<ItemTemplate>
<div id="pdfFrameDiv" runat="server" class="pdfPage"><%# Container.DataItem %>
<div style="position:absolute;">
<asp:Image ID="pdfPreviewImage" runat="server" />
</div>
<div style="position:relative;height:188px;background-color:rgb(240,240,240)">
<asp:Panel ID="thumbnails" runat="server" />
</div>
<div style="position:relative; top:-14px; left:120px;">
<asp:CheckBox ID="selectPdfPageCheckbox" runat="server" />
</div>
</div>
</ItemTemplate>
</asp:ListView>
<asp:checkbox ID="selectAllPages" runat="server" AutoPostBack="true" OnCheckedChanged="selectAllPdfPages" />
protected void pdfPagesListView_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
if (byteArray.Length < 25000000)
{
ListViewDataItem dataItem = (ListViewDataItem)e.Item;
int i = dataItem.DisplayIndex;
if (Session["computedPages"] != null)
{
int[] computedPages = (int[])Session["computedPages"];
if (computedPages[i] == 1)
{
dataItem.Visible = false;
}
}
try
{
Panel thumbnailPanel = (Panel)e.Item.FindControl("thumbnails");
Thumbnail thumbnail = new Thumbnail();
thumbnail.SessionKey = unique;
thumbnail.Index = i + 1;
thumbnail.DPI = 17;
thumbnail.Width = 200;
thumbnailPanel.Controls.Add(thumbnail);
Image pdfPreviewImage = (Image)e.Item.FindControl("pdfPreviewImage");
pdfPreviewImage.Visible = false;
}
catch (Exception ex)
{
Image pdfPreviewImage = (Image)e.Item.FindControl("pdfPreviewImage");
pdfPreviewImage.ImageUrl = "~/img/pdfPreview.jpg";
}
}
else
{
Image pdfPreviewImage = (Image)e.Item.FindControl("pdfPreviewImage");
pdfPreviewImage.ImageUrl = "~/img/pdfPreview.jpg";
}
}
}
:
이리스트 뷰의 OnItemDataBound 코드 이 수표의 코드/체크 박스 이벤트를 취소 :
protected void selectAllPdfPages(object sender, EventArgs e)
{
if (selectAllPages.Checked == true)
{
foreach (ListViewDataItem item in pdfPagesListView.Items)
{
CheckBox cb = (CheckBox)(item.FindControl("selectPdfPageCheckbox"));
cb.Checked = true;
}
}
else
{
foreach (ListViewDataItem item in pdfPagesListView.Items)
{
CheckBox cb = (CheckBox)(item.FindControl("selectPdfPageCheckbox"));
cb.Checked = false;
}
}
}
이 내 페이지가 OnItemDataBound 이벤트 후 같은 모습입니다 :
는 IT가 selectAllPages 확인란을 선택 후 보이는 방법이 :
모든 미리보기 이미지를 잃지 않고 모든 확인란을 선택/선택 취소하고 싶습니다. 나는 ... 누군가가 나를 도울 수 사전에
감사합니다 희망
나는 그것이 일어나는 이유를 알고 있지만 이것을 해결하는 방법을 알지 못한다고 생각합니다. 그 이유는 축소판 컨트롤을 동적으로 페이지에 추가하기 때문입니다. 동적으로 추가 된 컨트롤은 모든 포스트 백에서 컨트롤 트리에 다시 추가해야합니다. 귀하의 경우에는 데이터 바인딩 과정에서 한 번만 발생하기 때문에 추가 작업이 필요하지 않습니다. 문제를 해결하려면 클라이언트 측 솔루션으로 전환하거나 마크 업에 미리보기 이미지를 선언하십시오. 또는 최후의 수단으로 모든 게시물에 태그를 추가하는 방법을 생각하십시오 (그러나하지 마십시오) – Andrei