将值从后端代码传递到Javascript时的变量命名
我正在将doctype变量的值从我的c#代码传递给javascript 现在我无法根据输入找到任何文件 命名约定必须准确吗 编辑:在将值从后端代码传递到Javascript时的变量命名,javascript,c#,Javascript,C#,我正在将doctype变量的值从我的c#代码传递给javascript 现在我无法根据输入找到任何文件 命名约定必须准确吗 编辑:在onclickjavascript页面中添加了带有DocType硬编码的当前版本 变量: ascx.cs中的文件类型 ascx中的DocType AllGroup\u UserControl.ascx.cs: public partial class AllGroup_UserControl : UserControl { ProductProvider
onclick
javascript页面中添加了带有DocType
硬编码的当前版本
变量: ascx.cs中的文件类型 ascx中的
DocType
AllGroup\u UserControl.ascx.cs:
public partial class AllGroup_UserControl : UserControl
{
ProductProvider provider = new ProductProvider();
TBL_USER_PROFILEProvider uprovider = new TBL_USER_PROFILEProvider();
DocumentProvider dprovider = new DocumentProvider();
int DOC_TYPE;
// Document Types
const int G1_DOC_TYPE = 1;
const int G2_DOC_TYPE = 2;
const int G3_DOC_TYPE = 3;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string userName = SPContext.Current.Web.CurrentUser.Name;
TBL_USER_PROFILE p = uprovider.GetUser(userName);
if (p != null)
{
List<string> G1List = uprovider.GetAccessByModuleName(p.UserProfileID, "Group 1");
List<string> G2List = uprovider.GetAccessByModuleName(p.UserProfileID, "Group 2");
List<string> G3List = uprovider.GetAccessByModuleName(p.UserProfileID, "Group 3");
if (G1List.Count != 0)
{
DOC_TYPE = G1_DOC_TYPE;
}
else if (G2List.Count != 0)
{
DOC_TYPE = G2_DOC_TYPE;
}
else if (G3List.Count != 0)
{
DOC_TYPE = G3_DOC_TYPE;
}
else
{
Response.Redirect("/SitePages/AccessDeny.aspx");
}
Page.DataBind();
}
}
}
public int DocType
{
get
{
return DOC_TYPE;
}
}
//rest of the code
<a href="#" runat="server" onclick="openDialog('/SitePages/FileDownload.aspx?DocType=<%# DocType %>&ItemNo=<%#Eval("StoreItemNo")%>&CustomerID=<%#Eval("CustomerID")%>')">
Group1\u UserControl.ascx:(doctype硬编码)
为此,您必须使用AJAX。然后可以将值从后端传递到JavaScript。 下面是一个例子 客户端脚本
您能否从
ascx.cs
和UserControl.ascx.cs:
更新了我的ascx.cs
类文件@D-Shihi不确定此链接是在哪里生成的,因为您使用无法根据输入找到任何文件-您能解释页面数据绑定事件发生了什么吗?另外,在onclick
部分中究竟生成了什么样的URL?在答案中添加示例比单独发布链接更有用谢谢Abana,我将用一个示例更新我的答案
public partial class Group1_UserControl : UserControl
{
ProductProvider provider = new ProductProvider();
TBL_USER_PROFILEProvider uprovider = TBL_USER_PROFILEProvider();
DocumentProvider dprovider = new DocumentProvider();
int docType = 100;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string userName = SPContext.Current.Web.CurrentUser.Name;
TBL_USER_PROFILE p = uprovider.GetUser(userName);
if (p != null)
{
List<string> alist = uprovider.GetAccessByModuleName(p.UserProfileID, "Group 1");
if (alist.Count == 0)
Response.Redirect("/SitePages/AccessDeny.aspx");
}
}
}
}
<a href="#" onclick="openDialog('/SitePages/FileDownload.aspx?DocType=100&ItemNo=<%#Eval("StoreItemNo")%>&CustomerID=<%#Eval("CustomerID")%>')">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="text/javascript"></script>
<script type = "text/javascript">
function ShowCurrentTime() {
$.ajax({
type: "POST",
url: "CS.aspx/YourFunctionHere",
data: '{name: "' + DocType + '" }',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
failure: function(response) {
alert(response.d);
}
});
}
function OnSuccess(response) {
alert(response.d);
}
</script>
[System.Web.Services.WebMethod]
public static string YourFunctionHere(string name)
{
return "return value here";
}