0

<%=%>サーバーコントロールで使用しようとしていますが、機能していません。
これは私のコードです:

 <input type="button" runat="server" value="<< Previous" id="btnPrevious" 
        onclick="location.href='<%=PreviousLink %>'"/>

PreviousLinkページで定義されたプロパティです。
ページを表示すると、式全体が評価されずにそのまま記述されます。

4

5 に答える 5

1

これを試して:

jQueryの使用:

<input type="button" runat="server" value="<< Previous" id="btnPrevious"/>
<script>
$(function () {
            $("#<%=btnPrevious.ClientID%>").on("click", function (event) {
                window.location.href = '<%=PreviousLink %>';
            });
});
</script>

JavaScriptの使用:

function onButtonClick() {
        window.location.href = '<%=PreviousLink %>';
    }

<input type="button" runat="server" value="<< Previous" id="btnPrevious" onclick="onButtonClick();"/>

.aspx.cs(C#コード):

public string PreviousLink = "http://stackoverflow.com/";
于 2013-02-19T11:29:35.247 に答える
1

属性を削除runat serverすると、<%%>式が適切に評価されます。
この質問を確認してください
サーバーコントロールのプロパティ値としての<%=%>式がコンパイルエラーにつながるのはなぜですか?

于 2013-02-19T11:40:29.730 に答える
1

できません。コントローラコードで定義できます。

btnPrevious.OnClientClick = "location.href='" + PreviousLink + "'"
于 2013-02-19T11:18:08.597 に答える
0

できることは、ASP.NETインライン式を使用して、ページの読み込み中に値を設定することです。

まず、ページのコードビハインドにプロパティを追加します。

protected string InputValue { get; set; }

イベントではPage_Load、プロパティの値を設定します。

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        this.InputValue = "something";
    }
}

最後に、次のようにページマークアップにインライン式を追加します。

<input type="text" name="txt" value="<%= this.InputValue %>" />

inputこれにより、サーバー側のタグにすることなく、要素の値を設定できます。

于 2013-02-19T11:54:40.523 に答える
0

それもうまくいくはずです:

<script type="text/javascript">
function setLocation() {
  location.href = '<%=PreviousLink %>';
}
</script>
<input type="button" runat="server" value="<< Previous" id="btnPrevious" onclick="setLocation();"/>
于 2013-02-19T11:23:29.537 に答える