J'essaie de définir des propriétés côté client sur un ensemble de contrôles dans le EditItemTemplate d'un ListView ASP.Net.Fonction Javascript sur ASP.NET Listview_ItemCreated
Par exemple, si le EditItemTemplate contient quelque chose comme ceci:
<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>
Je veux montrer que la ligne s'il est en fait un numéro de téléphone, de sorte que JavaScript est quelque chose comme:
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";
}
J'essaie d'ajouter un appel à cette fonction dans le code-behind, mais je ne sais pas comment. Il semble que le chargement soit trop tard.
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 + "');");
}
}
}
}
Tous les pointeurs seraient grandement appréciés.
Merci, WTS
Cela fonctionnera certainement. J'espérais une solution côté client (pour la réutilisation, et parce que ma page actuelle est un peu plus complexe que la question que j'ai présentée). Je vais marquer ceci comme la réponse si je n'obtiens pas une alternative côté client. –