4

3 つのテキスト ボックス、3 つのボタン、およびグリッドビューで構成されるユーザー コントロールがあります。フォームの defaultbutton プロパティを設定できますが、それは 1 つのボタンにしか影響しません。

各テキストボックス/ボタンの組み合わせには、テキストボックスにフォーカスがあるときに Enter キーを押すと、関連付けられたボタンが起動するという動作が必要です。

問題をさらに複雑にするために、これはマスター ページの実装内で使用されています。

これを行う方法はありますか?私が知る限り、.NET は 1 つのデフォルト ボタンしか許可しません。テキスト ボックスとボタンを明示的に関連付けることはできません。

あなたの洞察を歓迎します。

4

4 に答える 4

4

ここに1つの方法:

<form id="form1" runat="server">
<div>
    <asp:Panel ID="Panel1" DefaultButton="Button1" runat="server">
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
        <asp:Button ID="Button1" runat="server" Text="Button" />
    </asp:Panel>
    <asp:Panel ID="Panel2" DefaultButton="Button2" runat="server">
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br />
        <asp:Button ID="Button2" runat="server" Text="Button" />
    </asp:Panel>
    <asp:Panel ID="Panel3" DefaultButton="Button3" runat="server">
        <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox><br />
        <asp:Button ID="Button3" runat="server" Text="Button" />
    </asp:Panel>
</div>
</form>
于 2010-01-11T16:55:29.020 に答える
0

デフォルトのボタンを無効にして、テキストボックスのonKeyPressイベントを処理できます。

于 2010-01-11T16:48:17.957 に答える
0

TextBox/Button セットごとに個別のユーザー コントロールを作成してみてください。そうすれば、各 Textbox が関連する Button を起動します。

于 2010-01-11T16:40:50.780 に答える
0

添付プロパティの使用による優れたソリューションは次のとおりです

記事のプロパティ コードを添付してクラスを作成し、それをコントロールに追加するだけで、TextBox と Button の各ペアがカプセル化されます。

例:<StackPanel ... local:AccessKeyScoper.IsAccessKeyScope="True"> <TextBox ... /> <Button ... /> </StackPanel>

注: 依存関係プロパティを持つファイルをサブディレクトリに追加する場合は、local:.

于 2020-05-28T15:05:03.070 に答える