C# 中继器高亮显示ItemCommand中的项
我有一个中继器,里面绑定了一些用户控件和面板。面板有一个C# 中继器高亮显示ItemCommand中的项,c#,.net,repeater,C#,.net,Repeater,我有一个中继器,里面绑定了一些用户控件和面板。面板有一个OnClick事件并引发一个ItemCommand。我知道DataItem在回发过程中不会一直存在,因此在ItemCommand事件期间它将为空,我的要求是在单击特定usercontrol时更改其颜色(不使用Javascript)。有人有主意吗?您可以尝试在单击itemDataBound事件时更改特定UserControl的类名,如下所示 protected void DataList1_ItemDataBound(object sende
OnClick
事件并引发一个ItemCommand
。我知道DataItem
在回发过程中不会一直存在,因此在ItemCommand
事件期间它将为空,我的要求是在单击特定usercontrol时更改其颜色(不使用Javascript)。有人有主意吗?您可以尝试在单击itemDataBound事件时更改特定UserControl的类名,如下所示
protected void DataList1_ItemDataBound(object sender,
DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem)
{
//Add eventhandlers for highlighting
//a DataListItem when the mouse hovers over it.
e.Item.Attributes.Add("onmouseover",
"this.oldClass = this.className;" +
" this.className = 'EntryLineHover'");
e.Item.Attributes.Add("onmouseout",
"this.className = this.oldClass;");
//Add eventhandler for simulating
//a click on the 'SelectButton'
e.Item.Attributes.Add("onclick",
this.Page.ClientScript.GetPostBackEventReference(
e.Item.Controls[1], string.Empty));
}
}
“不使用Javascript”为什么要避免JS.RepeaterCommandEventArgs e。如果启用EnableViewState=“true”,则在转发器的ItemCommand事件中Item不会为null。@sajanyamaharequirement@DevrajGadhaviEnableViewState始终为true,一旦您发回,中继器将不会保留任何数据项,我说的DataItem不仅仅是e.Item,而且您可以通过e.Item.FindControl(“controlid”)找到放在repeater中的任何控件。你不能吗?您还可以获得三个参数e.CommandName、e.CommandArgument和e.CommandSource。如果我误解了您的问题或要求,请原谅。但是如果当用户单击其他项目时,我需要清除先前突出显示的项目,该怎么办?这就是我想在itemCommand中执行此操作的原因