1
我想在ASP.Net ListView的EditItemTemplate中的一組控件上設置一些客戶端屬性。ASP.NET上的Javascript函數Listview_ItemCreated
舉例來說,如果EditItemTemplate中包含這樣的事情:
<tr id='phoneRow'>
<td>
<asp:Label ID="lblPhoneLabel" runat="server" Text="Phone Number: " />
</td>
<td>
<asp:Label ID="lblPhoneNumber" runat="server"
Text='<%# Bind("PhoneNumber") %>' />
</td>
</tr>
我想只顯示該行,如果確實有一個電話號碼,讓JavaScript是這樣的:
function showOrHidePhoneRow(rowId, labelId)
{
var row = document.getElementById(rowId);
var label = document.getElementById(labelId);
if (label.value == "")
row.style.visibility = "collapsed";
else
row.style.visibility = "visible";
}
我試圖在代碼隱藏中添加對此函數的調用,但我不知道如何。看起來負荷太晚了。
protected void lvwExample_ItemCreated(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
ListViewDataItem item = e.Item as ListViewDataItem;
if (item.DisplayIndex == lvwExample.EditIndex)
{
Label label = item.FindControl("lblPhoneNumber") as Label;
if (label != null)
{
// Get here, but row always visible
label.Attributes.Add("onload",
"showOrHidePhoneRow('phoneRow', '" + label.ClientId + "');");
}
}
}
}
任何指針將不勝感激。
感謝, WTS
這肯定會起作用。我希望有一個客戶端解決方案(爲了可重用性,並且因爲我的實際頁面比我提出的問題稍微複雜一些)。如果我沒有獲得客戶端選擇,我會將其標記爲答案。 – 2010-09-13 15:42:42