[英]Trying to pass value from ASP.NET JavaScript script to my C# Code Behind function using Hidden Field
[英]Pass variable value calling c# behind function with javascript in asp.net
這是我的情況:我有一個可以合並tiff文件的asp網站。 因此,要執行此操作,我需要使用ac#函數,並且在javascript事件后調用它。 C#是這樣的:
public void mergeImages(string initialUrl, string lastImageUrl)
{....}
我創建了兩個隱藏字段,如下所示:
<input type="hidden" id="hi1" value="D:\\ProvaUpload\\1.tif" />
獲取值以傳遞給函數,因為我不知道我可以通過哪種方式將js變量傳遞給它。 我以這種方式調用該函數:
'<%mergeImages(par1,par2); %>';
我可以通過哪種方式將變量值傳遞給函數?
使用WebMethod
屬性裝飾方法:
[WebMethod]
public void mergeImages(string initialUrl, string lastImageUrl)
{....}
獲取隱藏的字段,並將其傳遞給Jquery Ajax call
,方法是單擊按鈕
var hdn1 = $('#hi1').val();
var hdn2 = $('#hi2').val();
var parameters = '{initialUrl:' + hdn1 + ', lastImageUrl:' + hdn2 + '}';
$.ajax({
type: "POST",
url: "page.aspx/mergeImages",
data: parameters,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(response) {
}
});
請參考stackoverflow線程。 ASP.NET-將JSON從jQuery傳遞到ASHX
這將幫助您了解使用處理程序文件(ashx)進行ajax json請求。
您可以使用此概念來滿足您的要求。
您無需在JavaScript中調用CS方法。 您應該在任何類型的處理程序文件(例如ashx,asmx或任何其他服務)上使用ajax發布。
實現此目的的一種簡單方法:-
因為您已經有兩個隱藏字段,但是必須向其中添加runat
屬性,以便可以在服務器端獲取它們的值。 我們說:-
<input type="hidden" id="hi1" value="D:\\ProvaUpload\\1.tif" runat="server" />
<input type="hidden" id="hi2" value="D:\\ProvaUpload\\2.tif" runat="server" />
並設置一個隱藏按鈕:-
<asp:button id="btnhidden" runat="server" Text="hide" Onclick="btnhidden_Click" Style="display:none"/>
現在,您可以單擊javascript函數中的按鈕:-
function UploadFinished()
{
//your JS code:-
// After finish uploading ..Click the button .. i have used jquery for simplicity:-
$('input[id$="btnhidden"]').click();
}
現在在您的代碼后面:-
protected void btnhidden_Click(Object sender,EventArgs e)
{
// you can get hidden fields values here ....
string val1=hi1.Value;
string val2=hi2.Value;
// Call your merge function here :-
mergeImages(val1,val2);
}
無需執行任何操作,您只需要單擊一個額外的按鈕,該按鈕將隱藏在輸出中:
<asp:button id="btnGetAndPassvalues" runat="server" Text="hide" Onclick="btnGetAndPassvalues_Click" Style="display:none"/>
現在,javascript函數應如下所示:
<script>
$('[id$=btnUpload]').live('click', function (e) {
// code to finish Upload prosess
$('[id$=btnGetAndPassvalues]').click();
});
</script>
僅此而已,在click事件中,獲取隱藏字段的值:
protected void btnGetAndPassvalues(Object sender,EventArgs e){
string hd1=hiden1.Value;
string hd2=hiden2.Value;
}
或者您可以撥打AJAX電話,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.