web用户控件添加项目问题

本文关键字:项目 问题 添加 控件 用户 web | 更新日期: 2023-09-27 17:59:20

在一个web用户控制上

public void displayFindingSection(int sectionsid,string text,string head)
{
   SectionHeading.Text = head;
   DataSet totImgs;
   totImgs = objGetBaseCase.GetFindingsNewerImages(sectionsid);
   FindingViewerlist.DataSource = totImgs;
   DataBind();
   SectionText.Text = text;
}

在其他web用户控制

public void DisplayFindingsViewer(CipCaseWorkflowItem2 item)
{
  FindingViewerDisplay.Visible = true;
  ImageAndSimpleViewer.Visible = false;
  objGetBaseCase.GetFindingsImages((Convert.ToInt32(Session["CaseId"])), item.ItemId);
  FindingsViewerNew = objGetBaseCase.GetFindingViewerNewElementDetails(item.ItemId);
  for (int i = 0; i < FindingsViewerNew.Count; i++)
  { 
    FindingViwerDisplay uc =  (FindingViwerDisplay)LoadControl("FindingViwerDisplay.ascx");                 
 FindingPlaceholder.Controls.Add(uc);
  uc.displayFindingSection(Convert.ToInt32(FindingsViewerNew[i].Index), FindingsViewerNew[i].Text, FindingsViewerNew[i].Title);
   }
}

我正在添加用户控件中的所有图像并显示图像,但当我使用上述代码时,web用户控件也在每次添加,并且在控件中显示一个图像我想要的是所有图像都应该只显示在一个用户控件中。。sectionsid正在从数据库中获取图像id。我认为for循环有问题,但我无法解决。请帮我解决

web用户控件添加项目问题

可能是你在循环中定义了它

 FindingViwerDisplay uc =  (FindingViwerDisplay)LoadControl("FindingViwerDisplay.ascx");                 
 FindingPlaceholder.Controls.Add(uc);

在每个循环中,你都添加uc并调用displayFindingSection,其中使用添加1个图像的循环比循环返回添加一个新控件,然后添加一个图像,它将一直持续到循环完成,所以在循环之前添加一次控件,并在循环中调用displayFindingSection。。

这样做吧,

 FindingViwerDisplay uc =  (FindingViwerDisplay)LoadControl("FindingViwerDisplay.ascx");                 
 FindingPlaceholder.Controls.Add(uc);
//define here a dataTabel with three columns let say u have datatable dt
for (int i = 0; i < FindingsViewerNew.Count; i++)
 { 
 dt.Rows.Add(Convert.ToInt32(FindingsViewerNew[i].Index), FindingsViewerNew[i].Text,   FindingsViewerNew[i].Title);

 }
  uc.displayFindingSection(dt);

然后在显示FindingSection 中计算出该dt

对不起,如果我错了。。。