나는 입력 컨트롤을 동적으로 생성하는 작업을하고 있으며 입력 컨트롤의 유효성을 검사하기 위해 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 파일에서 함수를 사용할 수 없습니다.