0

単純に見えるかもしれませんが、多くの問題を引き起こしている問題が 1 つあります。onkeyup 属性が組み込まれている ASP.NET のテキスト ボックスのカスタム コントロールを定義しました。私の問題は、このコントロールを使用するときに onkeyup をオーバーライドしたいのですが、機能していないようです。私のソースコードは次のとおりです。

this.Attributes.Add("onkeyup", "javascript:" + onKeyUp + ";"); // for the custom control

そしてそれを使用するとき

< myControl:SpecialTextBox ID="txtValue" runat="server"/>

コードビハインドで設定しました

txtValue.Attributes.Add("onKeyUp", "DefaultValue();");

ただし、より具体的なものではなく、カスタム コントロールで定義された onkeyup を取得し続けます。これに対する解決策はありますか?どうもありがとうございました!

4

3 に答える 3

2

ページのコード動作で使用txtValue.Attributes["onKeyUp"] = "DefaultValue();";してみてください。これにより、カスタムコントロールが上書きされます。

于 2012-07-09T15:03:36.520 に答える
1

にプロパティを追加できますCustomControl

public string OnClientKeyUp { get { /**/ } set { /**/ }

でデフォルト値を設定して、OnInit後でページでオーバーライドできるようにします (例: Page_Load)。

于 2012-07-09T15:04:06.230 に答える
1

次のように、ユーザー コントロールにプロパティを追加してみることができます。

public string KeyUp
{
    get
    {
        if (txtValue.Attributes["onKeyUp"] == null)
            return string.Empty;

        return txtValue.Attributes["onKeyUp"]
    }
    set
    {
        txtValue.Attributes["onKeyUp"] = value;
    }
}

サーバー側の asp.net タグで、このプロパティを呼び出して値を設定できます。

<myControl:SpecialTextBox ID="txtValue" runat="server" KeyUp="DefaultValue();" />
于 2012-07-09T15:07:42.797 に答える