2010-12-07 9 views
1

私はスルースルーし、このためのクリーンな解決策が見つかりませんでした。私の同僚はかなり汚い解決策を見つけましたが、私はマスターページに配置すると、以下のリンク参照のソリューションがうまくいかない理由はわかりません。基本的にテキストボックスとリンクボタンがあるマスターページがあります。私がEnterキーを押すと、子ページのデフォルトボタンが代わりに呼び出されます。デフォルトのLinkBut​​ton onマスターページに入っています

  1. http://weblogs.asp.net/jeff/archive/2005/07/26/420618.aspx
  2. set linkbutton as default button for asp:panel in asp.net(アフマドのソリューション)

してください。この上の任意の洞察力?ありがとう:)

私は明日仕事をするときに私は汚い解決策を投稿します。

EDIT:

string id = ctlToClick.UniqueID; 
string someJavascript = //see below 
EmailTextBox.Attributes.Add("OnKeyPress", someJavascript); 

ジャバスクリプト(StackOverflowのが良いそれをフォーマットすることができますので、それをここに置い):ここに汚れた(と思う)ソリューションです

javascript:if (window.event){ 
    if(parseInt(window.event.keyCode) == 13){ 
    WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('" + id + "', '', true, 'Login', '', false, true)); 
    return false; 
    } 
} 

は、これは本当にのための唯一のソリューションですこの?

+0

Enterキーを押したときに何をしたいですか?リンク先のページにリダイレクトしますか? –

答えて

1

defaultButtonプロパティを設定しようとしましたか?

lnkNextPageLinkButtonコントロールのIDです
<form id="Form1" 
     defaultbutton="lnkNextPage" 
     runat="server"> 

+0

ええ、私はそれを試みました。フォームは、asp:panelの内部にasp:textboxとasp:linkbuttonで構成され、defaultbuttonプロパティはリンクボタンのidに設定されています。 – David

+0

"Form1のDefaultButtonはIButtonControlタイプのコントロールのIDでなければなりません。"、これは動作しません – thatsalok

0

タブ/入力キーを制御するには、単純なJavaScriptが必要だと思います。私はこれまでに、デフォルトのボタンソリューションを動作させる方法がなかったのです。

アイデアは単純です - テキストボックスに入力した各キーを確認してください。 presedキーがenterまたはtabの場合は、jqueryまたはdocument.GetElementById( 'id')のいずれかでボタンを探し、ボタンのclickイベントを呼び出します。

a):フォームは1つしかありません。b):実際にどのボタンがクリックされたかを制御できるようにしたい別のテキストボックス(タブ/入る)。

シンプルなjavascriptファイルがこれを解決します。

<bleepzter/> 
関連する問題