首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

在线急求,c# 前台JS调用CS后台变量有关问题

2013-08-01 
在线急求,c# 前台JS调用CS后台变量问题protected string mediaTitleClass nullprotected string mediaS

在线急求,c# 前台JS调用CS后台变量问题

protected string mediaTitleClass = null;
        protected string mediaSortString = null;
        protected string mediaName = null;
        protected string mediaDesc = null;
        protected string mediaManID = null;
        protected string mediaManName = null;
        protected string mediaOrgName = null;
        protected string mediaInstrument = null;
        protected string mediaType = null;
        protected string mediaImportance = null;
        protected string mediaAddTime = null;
        protected string mediaShortTime = null;
        protected string mediaHitNum = null;
        protected string mediaDownNum = null;
        protected string mediaFileUrl = null;
        protected string strfile = null;

        protected void Page_PreInit(object sender, EventArgs e)
        {
            object mediaIDStr = Request.QueryString["id"];
            if (mediaIDStr == null)
            {
                Response.Redirect("403.htm");
            }
            int meidaID;
            //取到了媒体的ID
            if (Int32.TryParse(mediaIDStr.ToString().Trim(), out meidaID))
            {
                Dictionary<string, object> propertyTable = MediaHelper.GetMediaProperty(mediaIDStr as string, new List<string>() { "MediaSort" });



                int mediaSort = Int32.Parse(propertyTable["MediaSort"].ToString());
                //判断需要多少权限,可以看  视频/音频/图片
                GrantPoint wannaPower = 0;
                switch (mediaSort)
                {
                    case 1:
                        wannaPower = GrantPoint.VIDEO_PLAY;
                        break;
                    case 2:
                        wannaPower = GrantPoint.AUDIO_PLAY;
                        break;
                    case 3:
                        wannaPower = GrantPoint.PHOTO_PLAY;
                        break;
                    default:
                        break;
                }
                if (!UserProfileHelper.JudgePermission(Session["userinfo"], wannaPower))
                {
                    Response.Redirect("403.htm");
                }


                else
                {
                    List<string> propNames = new List<string>() { 
                        "MediaSort", "Name", "FileUrl", "Description", 
                        "PoliceManNum", "InstrumentID", "Importance", "Type" ,
                        "AddedTime","ShootTime","IsPermanent","ManName",
                        "OrgName","HitNum","DownNum"
                    };
                    propertyTable = MediaHelper.GetMediaProperty(mediaIDStr as string, propNames);

                    //页面变量赋值开始
                    mediaTitleClass = mediaSort == 1 ? "type_video" : (mediaSort == 2 ? "type_audio" : "type_pic");
                    mediaSortString = mediaSort == 1 ? "视频" : (mediaSort == 2 ? "音频" : "图片");
                    mediaName = propertyTable["Name"] as string;
                    mediaDesc = propertyTable["Description"] as string;
                    mediaManID = propertyTable["PoliceManNum"] as string;
                    mediaManName = propertyTable["ManName"] as string;


                    mediaOrgName = propertyTable["OrgName"] as string;
                    mediaInstrument = propertyTable["InstrumentID"] as string;
                    mediaImportance = propertyTable["Importance"] as string;
                    mediaType = propertyTable["Type"] as string;

                    mediaAddTime = String.Format("{0:yyyy-MM-dd HH:mm:ss}", (propertyTable["AddedTime"] as DateTime?));
                    mediaShortTime = String.Format("{0:yyyy-MM-dd HH:mm:ss}", (propertyTable["ShootTime"] as DateTime?));

                    mediaHitNum = propertyTable["HitNum"].ToString();
                    mediaDownNum = propertyTable["DownNum"].ToString();
                    mediaFileUrl = propertyTable["FileUrl"].ToString();
                    //增加一个访问量
                    MediaHelper.IncreaseMediaHitNum(mediaIDStr.ToString().Trim());
                }
            }
            //媒体ID参数非法了
            else
            {
                ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "", "alert('请不要尝试非法操作'); ", true);
            }

        }


前台JS代码:
<script type="text/javascript"> 


       /*        *初始化绑定
        */

        $(document).ready(function() {
        var mUrl = "<%=mediaFileUrl%>";
            alert(mUrl);
});


问题是当我在前台 直接对mediaFileUrl赋值一个字符串如:mediaFileUrl = "调用成功!" 时 js可以加载并显示mUrl但是当我如上面代码操作时,js却不加载 我用了下debugger 发现 程序根本不健在js
问题困扰我一天了 实在想不到什么办法了 
各位大神发发雌威,帮我想个办法 不用上面的办法也可以 只要能传输参数就可以了 ,在线刷新等待 求解~~~
[解决办法]
恩..页面可以理解成一个控件,所以实在RenderChontrol的时候就需要对变量赋值。具体的没有怎么了解,我一般的做法是在RenderControl拼js进去..一种思路,或许楼主可以试试


 public override void RenderControl(HtmlTextWriter writer)
        {

            base.RenderControl(writer);
            RenderScript(writer);
        }
        private void RenderScript(HtmlTextWriter writer)
        {
            url = "test";
            StringBuilder script = new StringBuilder();
            script.Append("<script language="javascript" type="text/javascript">");
            script.Append("$(function(){(alert('" + url + "'));});");
            script.Append("</script>");

            writer.Write(script.ToString());
        }

[解决办法]
既然楼主这样<label>媒体类型:</label><span><%=mediaFileUrl%></span>可以取到值 


那楼主可以通过css这个span设置成隐藏,然后再通过jquery调用这个变量,例如:
<span id="s1" style="display:none"><%=mediaFileUrl%></span>

<script type="text/javascript">  
$(document).ready(function() {   
      var mUrl =$("#s1").val() ; 
     alert(mUrl); 
}); 


[解决办法]
哦,纠正一下 var mUrl =$("#s1").val() ;应该改成 var mUrl =$("#s1").text() ;

热点排行