簡體   English   中英

ASCX結果調用在ASPX中找到的javascript

[英]ASCX result to call javascript found in ASPX

我有一個用戶控件(MyListSelect.ascx),它只有一個單選按鈕列表...

<%@ Control Language="C#" %>
<select>
    <option disabled selected>Select Options</option>
    <option>
        option 1
    </option>
    <option>
        option 2
    </option>
</select>

我的ASPX頁面具有:

<%@Register Src="~/MylistSelect.ascx" 
            TagName="listSelect" 
            TagPrefix="ListControl" %> 

<ListControl:listSelect runat="server" />

這會在我的ASPX中顯示一個下拉菜單(woo hoo);

我希望能夠(形成ASPX)基於所選下拉菜單的索引更改事件調用javascript函數,因為所選菜單項在不同頁面中具有不同的功能。 我不想在ASCX中定義所有可能的功能。

有什么建議么? lso,為什么<ListControl:listSelect runat="server" />必須要運行服務器? 有沒有辦法解決這個問題?

它必須是runat=server因為用戶控件是服務器端.net引擎處理的特殊控件。 ASP.NET用戶控件在客戶端沒有任何意義,在發送給客戶端之前需要進行“翻譯”。

為了選定的指數變化響應事件首先你需要一個id或CSS類分配給select這樣你就可以識別它更准確地槽jQuery選擇(假設你想使用jQuery因為你添加它來質疑標簽)。

這樣的事情應該可以解決問題

HTML

<select id="mySelect">
    <option disabled selected>Select Options</option>
    <option>
        option 1
    </option>
    <option>
        option 2
    </option>
</select>

JAVASCRIPT

// Shorthand for $( document ).ready()
$(function() {
    $('#mySelect').change(function(){
         // your logic when index changed here
    });
});

首先,將您的選擇更改為此:

<select onchange="yourJSFunction();">

當您在頁面內使用控件時,還將提供yourJSFunction

<script type="text/javascript">
    function yourJSFunction() {
        alert("yourJSFunction 1");
    }
</script>

<ListControl:listSelect runat="server" />

在另一頁中:

<script type="text/javascript">
    function yourJSFunction() {
        alert("yourJSFunction 2");
    }
</script>

<ListControl:listSelect runat="server" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM