ascx |
<table width="100%" cellpadding="0" cellspacing="0"> <tr> <td>Binding Data from SharePoint Links List to SpGridView without a Single line of Loop.</td> </tr> <tr> <td> <SharePoint:SPGridView ID="sgvLinks" runat="server" AutoGenerateColumns="false" DataKeyNames="ID"> <Columns> <asp:BoundField HeaderText="Link Name" DataField="URL" /> </Columns> </SharePoint:SPGridView> </td> </tr> </table> |
Ascx.cs |
using System; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using Microsoft.SharePoint; using System.Security; namespace DLLWebPart.DLLWebPart { public partial class DLLWebPartUserControl : UserControl { protected void Page_Load(object sender, EventArgs e) { sgvLinks.RowDataBound += new GridViewRowEventHandler(sgvLinks_RowDataBound); SPWeb currentWeb = SPContext.Current.Web; SPList LinksList = currentWeb.Lists["Links"]; SPQuery sQuery = new SPQuery(); sQuery.Query = "<OrderBy><FieldRef Name='ID' Ascending='False' /></OrderBy>"; sQuery.ViewFields = "<FieldRef Name='ID' /><FieldRef Name='URL' />"; SPListItemCollection myColl = LinksList.GetItems(sQuery); if (myColl.Count > 0) { if (!IsPostBack) { sgvLinks.DataSource = myColl.GetDataTable(); sgvLinks.DataBind(); } } } string strItemID = ""; void sgvLinks_RowDataBound(object sender, GridViewRowEventArgs e) { try { if (e.Row.RowType == DataControlRowType.DataRow) { SPSecurity.RunWithElevatedPrivileges(delegate() { strItemID = sgvLinks.DataKeys[e.Row.RowIndex].Value.ToString(); SPWeb currentWeb = SPContext.Current.Web; SPList lst = currentWeb.Lists["Links"]; SPQuery sQuery = new SPQuery(); sQuery.Query = "<Where><Eq><FieldRef Name='ID' /><Value Type='Counter'>"+strItemID+"</Value></Eq></Where>"; sQuery.ViewFields = "<FieldRef Name='ID' /><FieldRef Name='URL' />"; SPListItemCollection myColl = lst.GetItems(sQuery); if (myColl.Count > 0) { SPListItem item = myColl[0]; SPFieldUrlValue URL = new SPFieldUrlValue(item["URL"].ToString()); e.Row.Cells[0].Text = "<a href='"+URL.Url+"'>"+URL.Description+"</a>"; } }); } } catch (Exception ex) { Response.Write(ex.ToString()); } } } } |