我已经做了很多搜索(实际上是几个小时),但我还没有能够做到这一点。基本上,我有这个按钮:
<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()从来没有被调用过,所以任何人都可以指出我做错了吗?
答案 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连接到服务器并设置代码中断等。或者我所做的是让代码向我发送电子邮件,我为此创建了一个小实用程序库。