2016-04-06 16 views
-2

私はJava Scriptを初めて使用しています。私はそれを無効にするにはJavaScriptのinsertitemtemplateからボタンにアクセスする必要があるit.NowにInsertItemTemplateといくつかのボタンとaspx ListViewを持っています。これは機能していませんか?Java ScriptでInsertItemTemplateからコントロールを見つける方法

document.getElementById( '<%= Button1.ClientID%>')。disable = true;

私を助けてください。

答えて

0

ソリューション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; 
    } 
} 
+0

ありがとう。私は後ろのコードに触れてはいけません。私は直接クライアントのクリックでaspxページで取り戻すことができる方法はありますか? – bhavya158

+0

私はJavascriptコードだけを含む提案で私の答えを更新しました。 – ConnorsFan

+0

私は2番目の解決策を取り戻しました。 – ConnorsFan

関連する問題