ソリューション1
あなたはリストビューの各項目のコントロールのClientID
プロパティへのアクセス権を持っているコードビハインドでJavascriptコードを設定することができます。あなたが項目テンプレートに2つのボタンがあり、btn1
をクリックしたときbtn2
を無効にしたい場合たとえば、あなたはItemDataBound
イベントでクライアントコードを設定することができます。
void lstView_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.InsertItem)
{
Button btn1 = e.Item.FindControl("btn1") as Button;
Button btn2 = e.Item.FindControl("btn2") as Button;
btn1.OnClientClick = string.Format("var btn2 = document.getElementById('{0}'); btn2.disabled = true; return false;", btn2.ClientID);
}
}
ソリューション2
最初の方法を使用できず、マークアップを変更できる場合は、ページ内で一意の名前をボタンに付けて、ボタンのClientIDMode
を
に設定します
ListViewに挿入項目が最大で1つあるため、そのIDはフォーム内で一意である必要があります。
document.getElementById('btnUniqueName1');
ソリューション3
サーバー・コードを変更せずにボタンを見つけなければならない場合は、フォーム内のすべてのボタンを取得し、いくつかを探すことができます:あなたはこのようにボタンを取得することができますあなたが探しているボタンにしか見つからない属性:
var buttons = document.getElementsByTagName('button');
for (var i = 0; i < buttons.length; i++) {
var button = buttons[i];
// Check if that button is the one you want
// Look for some unique attribute, class name, etc.
if (button.className == 'btnUniqueClassName') {
// The button was found
button.disabled = true;
}
}
ありがとう。私は後ろのコードに触れてはいけません。私は直接クライアントのクリックでaspxページで取り戻すことができる方法はありますか? – bhavya158
私はJavascriptコードだけを含む提案で私の答えを更新しました。 – ConnorsFan
私は2番目の解決策を取り戻しました。 – ConnorsFan