在SharePoint页面中使用C#脚本

时间:2014-05-23 15:22:09

标签: c# html sharepoint

我已经做了很多搜索(实际上是几个小时),但我还没有能够做到这一点。基本上,我有这个按钮:

<asp:Button runat="server" Text="Go!" id="go" onClick="getDoc()" />

和这块剧本:

<script type="c#" runat="server">

public void getDoc(object sender, EventArgs e) {

    // Test to see if function was running (it's not...)
    DocFrame.Attributes["src"] = "http://www.google.com";

    // Get the current state of the dropdowns   
    String dropYear = (String)Year.SelectedValue;
    String dropDiv = (String)Division.SelectedValue;
    String dropControl = (String)Control.SelectedValue;
    String dropQuart= (String)Quarter.SelectedValue;

    // Get the Site where the list is
    using (SPSite siteCol = new SPSite("http://portal/Corporate/IT/")) {
        using (SPWeb web = siteCol.RootWeb){
            // Get the list items we need
            SPListItemCollection items = list.GetItems("Year", "Division", "Control", "Quarter");
            SPListItem item = null;
            // Loop through them until we find a matching everything
            foreach (SPListItem it in items){

                if(it.Year == dropYear && it.Division == dropDiv && it.Control == dropControl && it.Quarter == dropQuart){
                    item = it;
                    break;
                }
            }

            // Assign the item as a string  
            String URL = (String)item["Title"];
            // Set the iframe to the new URL
            DocFrame.Attributes["src"] = URL;
        }   
    }
}

这一切都在发生这种情况的页面中,请记住我已经使用sharepoint不到一个星期并且只使用C ++进行过编码,所以我可能会做一切可怕的事情错误。无论如何,似乎getDoc()从来没有被调用过,所以任何人都可以指出我做错了吗?

1 个答案:

答案 0 :(得分:0)

而不是

onClick="getDoc()"

你应该做

OnClick="getDoc"

这是连接活动的正确方法。

顺便说一句,您应该考虑关注C# Naming Guidelines。如果您使用更好的命名,它可能如下所示:

<asp:Button runat="server" Text="Go!" id="GoBtn" onClick="GoBtn_Click" />

通用惯例约定是在控件的ID之后附加事件名称。它不是必需的,但它看起来更干净,其他开发人员喜欢看到你的代码。

此外,DocFrame.Attributes["src"] = "http://www.google.com";不是查看函数是否正在运行的好方法。它不会实时更新页面,因为整个服务器端函数都会执行,然后将结果发送到客户端。相反,use your IDE's debugging tools连接到服务器并设置代码中断等。或者我所做的是让代码向我发送电子邮件,我为此创建了一个小实用程序库。