将值从后端代码传递到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

我正在将doctype变量的值从我的c#代码传递给javascript

现在我无法根据输入找到任何文件

命名约定必须准确吗

编辑:
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";
}