Tôi rất mới đối với Lập trình C# và Lập trình Sharepoint.Cách gọi Phương thức C# trong VisualWebPart (.cs) từ các Lớp khác nhau trong cùng một Không gian tên
Tôi đang cố gắng tìm hiểu về WebPart và C# được sử dụng trên đó. Tôi đã tạo một webpart trực quan để thêm/xóa các mục trong danh sách. Tôi có một phương pháp mà được gọi là trên một nút bấm mà thêm mục trong danh sách.
Đây là phương pháp của tôi:
public void TestMethod()
{
using (SPSite oSPSite = SPContext.Current.Site)
{
using (SPWeb ospweb = oSPSite.OpenWeb())
{
SPList lst = ospweb.Lists["CusomList1"];
SPListItem item = lst.Items.Add();
item["Item1"] = txt1.Text;
item["Item2"] = txt3.Text;
item["Item3"] = Convert.ToInt32(txt3.Text);
item["Item4"] = txt4.Text;
item.Update();
}
}
}
này được gọi là:
protected void Button1_Click(object sender, EventArgs e)
{
TestMethod();
}
này hoạt động Fine. Tôi đang cố gắng sử dụng cùng một phương pháp trên một WebPart thứ hai mà làm điều tương tự (thêm mục).
Tuy nhiên khi tôi đã thêm một Visual WebPart mới trên cùng một dự án và kêu gọi các lớp và phương pháp như
protected void Button1_Click(object sender, EventArgs e)
{
VWP1 NewClass = new VWP1();
NewClass.TestMethod();
}
này Thêm nút không hoạt động và khi tôi làm một debug tôi nhận được thông báo sau:
Object reference not set to an instance of an object.
Ai đó có thể vui lòng cho tôi biết tôi nên làm gì?
Tôi đọc ở đâu đó rằng câu lệnh 'Sử dụng' có phần quan trọng khi sử dụng các đối tượng Windows SharePoint Services để tránh giữ lại các đối tượng trong bộ nhớ trong Microsoft .NET Framework. Điều đó có đúng không? –
@AndresAdhi Điều quan trọng là phải vứt bỏ các đối tượng 'SPSite' /' SPWeb' mà bạn tạo ra. Nó không kém phần quan trọng để * không * vứt bỏ các trang web/đối tượng web mà bạn không tạo ra. Chỉ cần đặt một 'sử dụng' xung quanh mọi thứ sẽ gây ra vấn đề; bạn cần phải biết khi nào và không phù hợp. Bạn không bao giờ nên vứt bỏ bối cảnh hiện tại. – Servy
Chỉ để hiểu thêm về tôi, tôi khuyên bạn nên đọc http://solutionizing.net/2008/12/06/the-new-definitive-spsitespweb-disposal-article/ Servy lời khuyên tốt về việc xử lý +1! Ngoài ra nếu bạn đã từng lo lắng về việc xử lý đối tượng, hãy kiểm tra http://archive.msdn.microsoft.com/SPDisposeCheck – Truezplaya