0
   protected void rptLastPromotion_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
        {
                HtmlAnchor aView = (HtmlAnchor)e.Item.FindControl("aDescription");
                Label lbldescriptionlink = (Label)e.Item.FindControl("lblDescription");
                Label lbldescriptionNoLink = (Label)e.Item.FindControl("lblDescription2");
                HiddenField hfIsNewTab = (HiddenField)e.Item.FindControl("hfNewTab");

                for (int i = 0; i <= rptLastPromotion.Items.Count; i++)
                {
                    if (!String.IsNullOrEmpty(aView.HRef))
                    {
                        lbldescriptionlink.Visible = true;
                        lbldescriptionNoLink.Visible = false;
                        if (Convert.ToBoolean(hfIsNewTab.Value) == true)
                        {
                            aView.Target = "_blank";
                        }
                    }
                    else
                    {
                        lbldescriptionlink.Visible = false;
                        lbldescriptionNoLink.Visible = true;
                    }

                }

            }

リピーターでアイテムを処理して表示したいのですが、コードにエラーがあります。これで何か助けはありますか?

4

2 に答える 2

0

ItemTypeの内部ItemDataBoundイベントを確認する必要がありRepeaterます。

protected void rptLastPromotion_ItemDataBound(object sender,System.Web.UI.WebControls.RepeaterItemEventArgs e)  
{  
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)  
    {
          // write your logic here             
    }
}
于 2013-03-19T16:57:08.920 に答える
0

あなたの質問は非常に漠然としていますが、あなたの問題はリピーターアイテムのItemTypeをチェックしていないことにあると思います。これを行う標準的な方法は次のとおりです。

if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)

また、リピーターのアイテムをループする必要はありません。( for (int i = 0; i <= rptLastPromotion.Items.Count; i++)) それが ItemDataBound イベントの目的です。

したがって、コードは次のようになります。

protected void rptLastPromotion_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) {
                HtmlAnchor aView = (HtmlAnchor)e.Item.FindControl("aDescription");
                Label lbldescriptionlink = (Label)e.Item.FindControl("lblDescription");
                Label lbldescriptionNoLink = (Label)e.Item.FindControl("lblDescription2");
                HiddenField hfIsNewTab = (HiddenField)e.Item.FindControl("hfNewTab");

                    if (!String.IsNullOrEmpty(aView.HRef))
                    {
                        lbldescriptionlink.Visible = true;
                        lbldescriptionNoLink.Visible = false;
                        if (Convert.ToBoolean(hfIsNewTab.Value) == true)
                        {
                            aView.Target = "_blank";
                        }
                    }
                    else
                    {
                        lbldescriptionlink.Visible = false;
                        lbldescriptionNoLink.Visible = true;
                    }

              }
            }

私があなたの質問を理解していない/答えていない場合は、元の質問に詳細と説明を加えて拡張することをお勧めします。

于 2013-03-19T16:52:57.860 に答える