路徑是JavaScript的路徑如何使用JavaScript作爲在asp.net參數<%= %>腳本
var fileName = args.get_fileName(); lstImg.src = <%=GetListImageFilePath(fileName) %>
文件名是錯誤的,因爲它是JavaScript的,而不是在.NET 如何把這個說法在.NET代碼
路徑是JavaScript的路徑如何使用JavaScript作爲在asp.net參數<%= %>腳本
var fileName = args.get_fileName(); lstImg.src = <%=GetListImageFilePath(fileName) %>
文件名是錯誤的,因爲它是JavaScript的,而不是在.NET 如何把這個說法在.NET代碼
您需要使用AJAX。一個簡單的方法就是使用PageMethods。首先,[WebMethod]
屬性添加到您的方法:
[WebMethod]
protected static string GetListImageFilePath(string fileName)
{
此方法必須是靜態的。
然後在你的腳本管理器設置EnablePageMethods="True"
。那麼你可以這樣稱呼你的C#代碼:
var fileName = args.get_fileName();
PageMethods.GetListImageFilePath(fileName, function (path) {
lstImg.src = path;
});
你不能。 JavaScript運行在客戶端上,並且asp.net代碼位於服務器上。您需要使用與服務器如通信的一些其他的方式:阿賈克斯到Web服務,回傳等
你根本無法做到這一點,因爲JavaScript是在客戶端運行IE瀏覽器的地方作爲服務器代碼運行在服務器。你可以做的是改變你的GetListImageFilePath函數,以便它返回圖像目錄的基本URL,然後附加文件名來創建圖像路徑。
var fileName = args.get_fileName();
lstImg.src = <%=GetListImageFilePath() %> + '/' + fileName;
欲瞭解更多信息,如在Javascript中的服務器變量如何處理,我已經回答了StackOverFlow thread這裏。請看看以澄清你的疑問。
我覺得get_fileName()
是服務器端的功能。所以你可以直接從HTML中調用它。 檢查這些鏈接
http://weblogs.asp.net/jalpeshpvadgama/archive/2012/01/07/asp-net-page-methods-with-parameters.aspx http://stackoverflow.com/questions/7633557/asp-net-is-it-possible-to-call-methods-within-server-tag-using-eval
如果調用使用RegisterStartupScript()
或 RegisterClientScriptBlock()
那麼這些將在客戶端不能在服務器端調用JavaScript函數。
如果你想立即調用javascript函數在服務器端就宣佈等效服務器端功能。
在您的網站上添加一個ASHX(HTTP處理程序),那麼你可以使用lstImg.src = '/example.ashx?name=' +文件名。
public class ExampleHandler: IHttpHandler {
public void ProcessRequest (HttpContext context) {
var request = context.Request;
string fileName = (string)request.QueryString["name"];
// your logic
context.Response.Write(yourpath)
}
public bool IsReusable {
get {
return false;
}
}
}
是來自控件的文件名嗎? – PraveenVenu 2012-08-01 05:30:32