2011-05-12 6 views
0

나는 입력 컨트롤을 동적으로 생성하는 작업을하고 있으며 입력 컨트롤의 유효성을 검사하기 위해 C# 코드에서 streamwriter를 사용하여 js 파일을 만들고 있습니다. 이제 aspx 페이지에서 현재 생성 된 js 파일에 대한 참조를 추가하고 싶습니다.자바 스크립트 함수에서 js 파일 참조를 추가하십시오.

my create 입력 제어 방법은 webmethod이며 클라이언트 측에서 ajax-json을 사용하여 호출합니다. 웹 방법 : 영문 페이지에서

[WebMethod] 
public static string LoadDatanGenerateControls(int PostTypeID, int CategoryID) 
{ 
    DataTable dtControls = new DataTable(); 
    StringBuilder sb = new StringBuilder(); 
    dtControls = PostingExtendedFields.GetExtendedDFields(PostTypeID, CategoryID); 
    sb.Append("<table>"); 
    foreach (DataRow dr in dtControls.Rows) 
    { 
     sb.Append("<tr><td>"); 
     sb.Append("<input value=';" + dr["RequiredError"].ToString() + "'; type=';text'; size=';20'; id=';txt_" + dr["FieldName"].ToString() + "'; class=';riTextBox riEmpty'; style=';width:450px;'; onfocus =';Focus(this);'; onblur=\"Blur(this,';" + dr["RequiredError"].ToString() + "';);\"/>"); 
     sb.Append("</td></tr>"); 
    } 
    sb.Append("</table>"); 
    //create the js file 
    string path = HttpContext.Current.Server.MapPath("") + "\\"; 
    if (File.Exists(path + "sale.js")) File.Delete(path + "sale.js");//delete if exist 
    using (StreamWriter sw = new StreamWriter(path + "sale.js")) 
    { 
     sw.WriteLine("function Focus(obj) {"); 
     sw.WriteLine("var id = obj.id;"); 
     sw.WriteLine("$(';#'; + id).val(';';);"); 
     sw.WriteLine(" }"); 
     sw.WriteLine("function Blur(obj, title) {"); 
     sw.WriteLine("var id = obj.id;"); 
     sw.WriteLine("if ($(';#'; + id).val() == ';';) {"); 
     sw.WriteLine("$(';#'; + id).val(title);"); 
     sw.WriteLine("}"); 
     sw.WriteLine(" }"); 
    } 
    return sb.ToString(); 
} 

는 :

function LoadControls() { 
     try { 
      var types = $find("<%= ddlPost.ClientID %>"); 
      var Category = $find("<%= ddlCategory.ClientID %>"); 
      var typeID = types.get_value(); 
      var catID = Category.get_value(); 
      ///web method 
      $(';#TDDynamicContents';).html(';';); 
      $.ajax({ 
       type: "POST", 
       url: "Default.aspx/LoadDatanGenerateControls", 
       data: "{';PostTypeID';:';" + typeID + "';,';CategoryID';:';" + catID + "';}", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function(msg) { 
        if (msg.d.length > 0) { 
         $(';#TDDynamicContents';).html(msg.d); 
         //add js file path 
         addjsfile("sale.js", "js") 
        } 
       }, 
       async: false, 
       error: function(xhr, status, error) { 
        alert(xhr.statusText); 
       } 
      }); 
     } catch (e) { } 
    } 

    function addjsfile(filename, filetype) { 
     alert(filetype); 
     if (filetype == "js") { 
      var fileref = document.createElement(';script';); 
      fileref.setAttribute("type", "text/javascript"); 
      fileref.setAttribute("src", filename); 
     } 
     if (typeof fileref != "undefined") { 
      document.getElementsByTagName("head")[0].appendChild(fileref); 
      alert(fileref); 
     } 
    } 

하지만 내 addjsfile 기능이 전혀 작동하지 않습니다. Head 섹션에 refrence를 추가하지 않고 js 파일에서 함수를 사용할 수 없습니다.

답변

0

이 문제에 대한 해결책은 당신이 JS 기능을 사용하거나 페이지로드 ClientScript.RegisterClientScriptInclude ("로 myscripf", "MyJavaScript.js")에 어디든지 경우에 다음 코드 줄을 사용하는 것입니다 더 자세한 논의는 경우에만이 작업을 수행하는 자바 스크립트 블록을 사용하려는 경우 어떤 도움

Click Here

이 될 수 있다면 다음에 봐 here


간다

관련 문제