Ich habe diese Code-Behind, die jedes Element in einem Repeater prüft, wenn es datenbankabhängig ist, um zu sehen, ob der Autor/das Datum leer ist (entweder kein Autor/Datum oder das System so eingestellt ist, dass sie nicht angezeigt werden) löschen Sie ihre jeweiligen Etiketten. Dies ist so, dass ich etwas wie "Posted by on" nicht bekomme, wenn kein Autor und/oder Datum angegeben ist. HierIst es möglich, Eigenschaftsnamen von einem datengebundenen Objekt abzurufen?
ist der Code:
protected void Page_Load(object sender, EventArgs e)
{
repeater.ItemDataBound += new RepeaterItemEventHandler(repeater_ItemDataBound);
}
void repeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Literal PostedBy = (Literal)e.Item.FindControl("litPostedBy");
Literal PostedOn = (Literal)e.Item.FindControl("litPostedOn");
string Author = (string)DataBinder.Eval(e.Item.DataItem, "Author");
string Date = (string)DataBinder.Eval(e.Item.DataItem, "PubDate");
if (string.IsNullOrEmpty(Author))
{
if (string.IsNullOrEmpty(Date))
{
PostedBy.Text = "";
PostedOn.Text = "";
}
else
{
PostedBy.Text = "Posted ";
}
}
}
}
ich ein CMS verwenden, und ich bin nicht sicher, was alle Eigenschaften sind in den e.Item.DataItem
. Gibt es eine Möglichkeit, wie ich das DataItem durchlaufen und die Eigenschaftsnamen/-werte ausdrucken kann?
Danke!
Ok, das ist eine gute Information, außer ich sehe ‚Autor‘ nicht in der Ergebnisse. Kann ich noch etwas anderes machen? – Anders
Wenn Sie in der von mir angegebenen Methode einen Haltepunkt festlegen, können Sie obj im Debugger untersuchen. dann werden Sie wahrscheinlich genau sehen, um welche Art von Objekt es sich handelt. –