パスは JavaScript パスです
var fileName = args.get_fileName(); lstImg.src = <%=GetListImageFilePath(fileName) %>
ファイル名は、javascript であり、.NET ではないため、エラーです。この引数を .NET コードに入れる方法
パスは JavaScript パスです
var fileName = args.get_fileName(); lstImg.src = <%=GetListImageFilePath(fileName) %>
ファイル名は、javascript であり、.NET ではないため、エラーです。この引数を .NET コードに入れる方法
AJAX を使用する必要があります。これを行う簡単な方法の 1 つは、PageMethods を使用することです。まず、メソッドに属性を追加し[WebMethod]
ます。
[WebMethod]
protected static string GetListImageFilePath(string fileName)
{
このメソッドは静的でなければなりません。
次にEnablePageMethods="True"
、スクリプト マネージャーで設定します。次に、次のように JavaScript から C# コードを呼び出すことができます。
var fileName = args.get_fileName();
PageMethods.GetListImageFilePath(fileName, function (path) {
lstImg.src = path;
});
できません。JavaScript はクライアントで実行され、asp.net コードはサーバー上にあります。サーバーとの通信には別の方法を使用する必要があります。たとえば、Web サービスへの Ajax、ポストバックなどです。
Web サイトに ashx (http ハンドラ) を追加すると、lstImg.src = '/example.ashx?name=' + fileName を使用できます。
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;
}
}
}
JavaScriptがクライアント側、つまりサーバーコードがサーバーで実行されるブラウザで実行されているため、それを行うことはできません。できることは、GetListImageFilePath関数を変更して、画像ディレクトリのベース URL を返し、ファイル名を追加して画像パスを作成することです。
var fileName = args.get_fileName();
lstImg.src = <%=GetListImageFilePath() %> + '/' + fileName;
Javascript のサーバー タグがどのように処理されるかなどの詳細については、ここでStackOverFlow スレッドに回答しました。疑問を解消するために、ぜひご覧ください。
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()
または
を使用して JavaScript 関数を呼び出すと、RegisterClientScriptBlock()
これらはサーバー側ではなくクライアント側で呼び出されます。
サーバー側ですぐに JavaScript 関数を呼び出したい場合は、同等のサーバー側関数を宣言します。