2011-06-07 9 views
0

私はASP.NETにとって非常に新しいです。これは私の最初の仕事であり、良い成果をあげる必要があります。カスタムKeyDownコントロール

私は2つのテキストボックスがあるこの検索ページに固執しています。 1つはIDで検索し、それはintで、2つ目は姓で検索します。検索したものと検索したものの両方がグリッドビューに表示されます。ユーザが姓を入力して検索をクリックするときの要件に従って、グリッドビューは私が働いているものを入力する必要があります。ユーザーがID Searchテキストボックスに入力すると、Lastname Searchテキストボックスもクリアされ、表示されたグリッドビューは非表示になります。

は私が

txtSNumberSearch.Attributes["onKeyDown"] = "clearTextBox(this.id)"; 

txtSNumberSearch.Attributes.Add("onKeyDown", string.Format("document.getElementById('{0}').innerText='';", txtLastNameSearch.ClientID)); 

txtLastNameSearch.Attributes.Add("onKeyDown", string.Format("document.getElementById('{0}').innerText='';", txtSNumberSearch.ClientID)); 

を使用して、テキストボックスをクリア達成。しかしダウンテキストボックスにキー上のグリッドビューをクリアするか、または非表示にすることはできませんよ、私の上司は私がイベントダウンカスタムキーを作成する必要があると述べていますハンドラ。どうやったらよいかわかりません。私がこの仕事で本当に実行する必要があるので、どんな助けもありがとうございます。

+0

document.getElementById("divGV").style.display='none';" 

あなたはこのような何かを行うことができますので、あなたはすでにハンドラは、txtLastNameSearchために追加ガットなぜあなたはクライアント側でそれをしなければならないのですか?テキストボックスの[TextChanged-Events](http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.textchanged.aspx)でサーバーサイドで簡単に行うことができます。 –

+0

@Tim Schmelter - テキストの変更ごとにサーバーの往復を必要としないので、より効率的です。セキュリティ上の理由から非表示にする必要がある場合はサーバー側を使用でき、再度表示したくない場合もあります。 – keyboardP

+0

@keyboardP:検索を実行する必要がある場合は、とにかくラウンドトリップを行う必要があります。その後、他のテキストボックスをクリアすることもできます。 –

答えて

0

テキストボックスはInnerTextを使用しません。 valueプロパティを使ってみてください。キーダウンはうまくいくと思う。

これを試してください。

txtSNumberSearch.Attributes["onKeyDown"] = "clearTextBox(this.id)"; 

txtSNumberSearch.Attributes.Add("onKeyDown", string.Format("document.getElementById('{0}').value='';", txtLastNameSearch.ClientID)); 

txtLastNameSearch.Attributes.Add("onKeyDown", string.Format("document.getElementById('{0}').value='';", txtSNumberSearch.ClientID)); 
+0

ありがとうございました。完璧に働いた... –

+0

もしそうなら、あなたの投票を与え、答えとしてマークすることを検討してください。 – SaravananArumugam

2

GridViewを隠す簡単な方法は、単に標準divにそれを追加して、それを隠すことです。

<div id="divGV"> 
    <asp:GridView>... 
</div> 

あなたはJavaScriptでこれを行うことにより、divを非表示にすることができます:

txtLastNameSearch.Attributes.Add("onKeyDown", string.Format("document.getElementById('{0}').value=''; 
document.getElementById("divGV").style.display='none';", txtSNumberSearch.ClientID)); 
+0

innerTextの代わりにテキストボックスの.valueプロパティを使用することを検討してください。 – Jay

+0

@Jay - はい、私はそれを変更します。私はちょうど彼が働いていた彼の既存のコードをコピー/貼り付けましたが、「価値」はより良いでしょう。 – keyboardP

+0

働いています。優勝ブラザー –

関連する問題