Lidan随笔记(原)

来源:互联网 发布:sql中with as的用法 编辑:程序博客网 时间:2024/05/02 01:00

--------编写人:Lidan

 

此博文,专属个人随手记录些小知识点:

 

1. 一个Webpart,加载了A,B两个用户控件,以上下形式排版,现在需要在A用户控件中,调用B用户控件方法:

解决方案:

在A用户控件按钮中,使用反序列化方法MethodInfo,来进行对B用户控件的调用

A用户控件中的Button按钮事件:

protected void btnCreate_Click(object sender, EventArgs e)

{

    Control control = this.Parent.FindControl("B用户控件ID");

    MethodInfo mi = control.GetType().GetMethod("GetData");

    mi.Invoke(control, new object[]{ "1", "2"});

}

 

B控件中的方法:

public void GetData(string str1, string str2)

{

    ...此处略

}

--Over

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

2. 后台调用js

string script = "<script language='javascript'>ModifyName();</script>";

ScriptManager.RegisterStartupScript(Page, GetType(), "Modify", script, false);

--Over

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

3. SharePoint 2013 Webpart 属性

[WebBrowsable(true)]

[WebDisplayName("Url")]

[Category("自定义")]

[Personalizable(true)]

public string strUrl

{

    get;

    set;

}

--Over

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 4. SharePoint 2013使用模式对话框

业务逻辑:

在A页面中,存放一个DSWebpart,点击上面的一个Button按钮,加载一个应用程序页App.aspx,应用程序页上有"确定","取消"两个按钮。

确定按钮:关闭对话框,刷新主页面

取消按钮:关闭对话框,不刷新主页面

 

DSWebpart代码:

-------------------------------------------

//创建弹出模式对话框方法

function CreateDialog()

{

    var options={

        URL: '/_Layouts/15/ABC/Pages/ADD.aspx',

        width:475,

        height:200,

        title:"XXX",

        dialogReturnValueCallback: function(dialogResult, returnValue){

            CloseCallBack(dialogResult, returnValue);

            }

        };

 

        SP.SOD.executeFunc(

        'sp.ui.dialog.js',

        'SP.UI.ModalDialog.showModalDialog',

        function(){

              SP.UI.ModalDialog.showModalDialog(options);

        });

}

 

//关闭模式对话框后,主页面动作方法

 function CloseCallBack(){

      if(value == "1"){

          //刷新主页面

          window.location.href = window.location.href;

      }

       else if(value == "0"){

           alert("无需刷新");

       }

}

 

 

 应用程序页App.aspx代码:

-------------------------------------------

 确定按钮调用的方法:

function closeDialogOK(){

SP.SOD.executeFunc(

        'sp.ui.dialog.js',

        'SP.UI.ModalDialog.showModalDialog',

        function(){

                 SP.UI.ModalDialog.commonModalDialogClose(SP.UI.DialogResult.closeDialogOK, 1);

        });

}

取消按钮调用的方法:

function closeDialogCancel(){

SP.SOD.executeFunc(

        'sp.ui.dialog.js',

        'SP.UI.ModalDialog.showModalDialog',

        function(){

                 SP.UI.ModalDialog.commonModalDialogClose(SP.UI.DialogResult.closeDialogCancel, 0);

        });

}

--Over

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

5. ReportViewer导出Excel,弹出对话框让用户选择保存路径

public static void ExportReport(ReportViewer reportViewer, string reportName)

{

    Warning[] warnings;

    string[] streamids;

    string mimeType;

    string encoding;

    string extension;

 

    byte[] bytes = reportViewer.ServerReport.Render(

        "Excel", null, out mimeType, out encoding, out extension,

        out streamids, out warnings);

 

    HttpContext.Current.Response.Clear();

    HttpContext.Current.Response.Buffer = true;

    HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename="+reportName + "_" +DateTime.Now().ToString("yyyyMMdd")+".xls");

    HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;

    HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";

    HttpContext.Current.Response.BinaryWrite(bytes);

    HttpContext.Current.Response.End();

}

--Over

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 6. 在SharePoint 中,在后台关闭模式对话框(此方案经验证,在SharePoint 2010,2013均可用)

string script = "<script language='javascript'>window.frameElement.commonModalDialogClose(1, 1);</script>";

ScriptManager.RegisterStartupScript(Page, GetType(), "Modify", script, false);

//前面的1为关闭对话框结果状态,相当于SP.UI.DialogResult.OK

//后面的1为关闭对话框返回标识,可在documentDialogCallback函数中取得此值,再执行你所需操作

--Over

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

7.ASP.NET后台弹出对话框,并实现页面跳转

ScriptManager.RegisterStartupScript(this, this.GetType(), "OK!", "alert('这是一个提示对话框!');window.location='Lidan.aspx'", true);


--Over

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

8. 当SharePoint配置了FBA后(​F​o​r​m​s​ ​B​a​s​e​d​ ​A​u​t​h​e​n​t​i​c​a​t​i​o​n​),所有访问的页面,都会跳转到预先设置好的登录页面。

当执行了方法:

bool flag = SPClaimsUtility.AuthenticateFormsUser(Context.Request.Url, userName, userPass);

if(flag)

{

    Response.Redirect("XXX");

}

后,就可以成功跳转了。

--Over

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

9. 在Page页面判断用户所使用设备与系统

Request.Browser.Platform.ToLower().StartsWith("win")  //用户使用PC机登录,且为windows系统

或使用Page.Request.UserAgent

--Over

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

0 0
原创粉丝点击