数据列表绑定一些文本和验证datalist

时间:2011-05-06 09:51:09

标签: c# asp.net

我正在使用此代码进行数据主义验证。

我在datalist中绑定图像之后我试图给每个图像添加标题假设有3个图像是datalist然后我能够给出的第一个图像但是对于另一个我无法...我认为条件有一些错误可以帮助我。代码正在跟随..

if (DataList1.Items.Count == 0)
            {
                msgError.Text = "Please add images and captions for each image";
                msgError.Focus();
            }
        else 
            AddCaption();
            bool IsEmptyCaption = false;
            Hashtable htble = (Hashtable)ViewState["imgIdCapHtbl"];
            List<int> imgIds = (List<int>)ViewState["imgIds"];

            if (htble != null && imgIds != null)
            {
                foreach (int id in imgIds)
                {
                    if (htble[id] == "")
                    {
                        IsEmptyCaption = true;
                        break;
                    }
                    else
                        IsEmptyCaption = false;

                }
            }
            else
                IsEmptyCaption = true;

           if (DataList1.Items.Count == 0)
            {
                msgError.Text = "Please add images";
                msgError.Focus();
            }
            else if (IsEmptyCaption)
            {
                msgError.Text = "Please add captions for each image";
                msgError.Focus();
            }
            else
            {
                Args[0] = "Section1";
                Args[1] = "";
                Args[2] = FindingId.ToString();
                Args[3] = FindingIdIns.ToString();
                AnotherHeading = false;
                //AddCaption();
                objGetBaseCase.UpdateImageCaptions((Hashtable)ViewState["imgIdCapHtbl"]);
                if (AddFindingsViewerDetails != null)
                    AddFindingsViewerDetails(Args, e);
                ClearImages();
                PageContent pg = (PageContent)this.Parent.FindControl("PageContent");
                if (pg != null)
                    pg.LoadWorkflowForCase();
                if (Display != null)
                    Display(null, EventArgs.Empty);
            }

1 个答案:

答案 0 :(得分:0)

    if (DataList1.Items.Count == 0)
        {
            msgError.Text = "Please add images and captions for each image";
            msgError.Focus();
        }
    else 
        AddCaption();
        bool IsEmptyCaption = false;
        Hashtable htble = (Hashtable)ViewState["imgIdCapHtbl"];
        List<int> imgIds = (List<int>)ViewState["imgIds"];

        if (htble != null && imgIds != null)
        {
            foreach (int id in imgIds)
            {
                if (htble[id] == "" || htble[id] == null) // New code implemented here
                {
                    IsEmptyCaption = true;
                    break;
                }
                else
                    IsEmptyCaption = false;

            }
        }
        else
            IsEmptyCaption = true;

       if (DataList1.Items.Count == 0)
        {
            msgError.Text = "Please add images";
            msgError.Focus();
        }
        else if (IsEmptyCaption)
        {
            msgError.Text = "Please add captions for each image";
            msgError.Focus();
        }
        else
        {
            Args[0] = "Section1";
            Args[1] = "";
            Args[2] = FindingId.ToString();
            Args[3] = FindingIdIns.ToString();
            AnotherHeading = false;
            //AddCaption();
            objGetBaseCase.UpdateImageCaptions((Hashtable)ViewState["imgIdCapHtbl"]);
            if (AddFindingsViewerDetails != null)
                AddFindingsViewerDetails(Args, e);
            ClearImages();
            PageContent pg = (PageContent)this.Parent.FindControl("PageContent");
            if (pg != null)
                pg.LoadWorkflowForCase();
            if (Display != null)
                Display(null, EventArgs.Empty);
        }

现在工作正常......