下面提到的代码是我在 sharepoint 2010 上的 webpart 的一部分。
public class class1 : System.Web.UI.WebControls.WebParts.WebPart
{
protected override void Render(HtmlTextWriter writer)
{
string s1 = "first";
string s2 = "second";
string s3 = "third";
slist.Add("first");
slist.Add("second");
LinkButton b;
writer.Write("<div id='tblSegment' ><table >");
foreach (string s in slist)
{
//b = new LinkButton();
//b.Text = s;
//b.Click += (sender1, e1) => { b_Click(sender, e, s1, s2, s3); };
writer.Write("<tr><td >");
writer.Write("<a href='' >");
writer.Write(s + "</a>");
writer.Write("</td></tr>");
}
writer.Write("</table></div>");
}
void b_Click(object sender, EventArgs e, string s1, string s2, string s3)
{
UpdateList(s1,s2,s3);
}
public void UpdateList(string ID, string column, string value)
{
using (SPSite oSPsite = new SPSite("http://server"))
{
using (SPWeb oSPWeb = oSPsite.OpenWeb())
{
oSPWeb.AllowUnsafeUpdates = true;
// Fetch the List
SPList list = oSPWeb.Lists["UserProfiles"];
//create Query
SPQuery query = new SPQuery();
query.Query = string.Concat(
"<Where><Eq>",
"<FieldRef Name='ID'/>",
"<Value Type='String'>" + ID + "</Value>",
"</Eq></Where>");
//get List Item
SPListItemCollection listItems = list.GetItems(query);
SPListItem item = listItems[0];
//update List Item
item[column] = value;
item.Update();
oSPWeb.AllowUnsafeUpdates = false;
}
}
}
}
我有点卡在这里,我需要做的是根据一些值(s1,s2,s3)更新共享点列表项,为此我创建了方法 UpdateList。每当单击任何超链接时,我都需要调用 UpdateList 方法。我尝试使用链接按钮,但正如预期的那样,它们无法与 htmltextwriter 一起使用(已评论),因此我添加了两个简单的锚标记。但是现在如何触发点击事件。
我阅读了有关 system.web.services 的信息,但无法使其正常工作。我现在能想到的唯一选择是创建一个单独的 Web 服务,其中包含UpdateList
某种方法,并对其进行 ajax 调用。
任何人都可以提出其他建议吗,或者是否可以将 ASP.Net colrols(例如 LinkButton)与Htmltextwriter
.