何小碩's profileGet More... ExperiencePhotosBlogListsMore Tools Help

Get More... Experience

我的知識庫 把所有在客戶端遇到的問題 所找到的資料統一蒐集在部落格 方便我後續的查閱 也藉此來分享網路上與 MOSS 有關的資訊
September 22

WebPart Connectable LifeCycle

This post describes the lifecycle events of a Sharepoint Connectable WebPart wih a single ViewState backed property;

On Page Load
  1. Constructor
  2. OnInit
  3. OnLoad
  4. ConnectionConsumer method is called if web part is connectable (sets the connection providers interface in the webpart)
  5. CreateChildControls
  6. OnPreRender (if your web part is connectable you would typically call the connection provider here to retrieve data)
  7. SaveViewState
  8. Render
  9. RenderChildren
  10. RenderContents
On 1st Postback
(PostBack click handler sets ViewState via public Property)
  1. Constructor
  2. OnInit
  3. CreateChildControls
  4. OnLoad
  5. PostBack click handling
  6. ConnectionConsumer method is called if web part is connectable (sets the connection providers interface in the webpart)
  7. OnPreRender (if your web part is connectable you would typically call the connection provider here to retrieve data)
  8. SaveViewState
  9. Render
  10. RenderChildren
  11. RenderContents
On 2nd Postback
(PostBack click handler sets ViewState via public Property)
  1. Constructor
  2. OnInit
  3. LoadViewState
  4. CreateChildControls
  5. OnLoad
  6. PostBack click handling
  7. ConnectionConsumer method is called if web part is connectable (sets the connection providers interface in the webpart)
  8. OnPreRender (if your web part is connectable you would typically call the connection provider here to retrieve data)
  9. SaveViewState
  10. Render
  11. RenderChildren
  12. RenderContents

Note that during the 2nd postback, LoadViewState, is called, since in the 1st postback the click handler sets the value of the ViewState backed public property.

ref: http://platinumdogs.wordpress.com/2008/10/14/sharepoint-webpart-lifecycle-events/

August 04

MOSS 2007 網路相簿技巧說明(使用 WebPart N WebPart Connection) 不使用 SmartPart Or QuickPart(Part1. 簡介說明)

~~ 感謝李小全(David)百忙中協助開發網路相簿網頁組件 ~~

用途與準備工作說明:

--{完成後的結果}

網路相簿 Screen Shot 

-- { 組件說明 }

我們需完成兩個網頁組件並進行連結,功能說明如下:

  1. 上方呈現相簿內的所有照片並且可供使用者進行點選,所有點選圖片均再上方直接瀏覽
  2. 下方則將相關相簿進行呈現,並可讓使用者進行封面圖片之選擇
  3. 上下方網頁組件需進行連結(不使用 SmartPart Or QuickPart)

-- { 所需程式說明 }

  1. 網頁組件兩支(說明如上述) 共五支 .cs
  2. EventHandler 事件處理函式 *1
  3. CSS
  4. 網頁組件連結 Middleware

-- { MOSS 2007 所需文件庫 }

  1. 建立一圖片庫做為存放相簿使用
  2. 以資料夾進行相簿分類

-- { 所需工具 }

  1. Virtual Studio .NET 2008
  2. CAML Tool
  3. EventHandler Installation Tool

~~ 待續後補 2009.08.31 ~~

July 26

Vertical Marquee in Silverlight

by Anish M. 2. April 2009 21:08
In IE8, it seems that the Marquee tag isn't supported anymore. Need for a Marquee replacement got me into my first Silverlight endeavour. Basically I've used the DoubleAnimation control to achieve this by altering the"To", "From" and "Duration" property. So, with little modification this can be made to rotate horizontally as well. 
 

In Settings.xml,  <Images> tag holds the list of images. <Delay> tag is used to set the speed, the images rotate.The <CanvasValue> width and height maps to the outer grid and the <MarqueeValue> maps to the width and height of the listbox inside the grid. <ImageValue> is used to set the width and the height of the image control. The images are stretched to fit.

To add the Silverlight control to an aspx page add register tag to the top of the page.

Set the Source property of the silverlight control to Marquee.xap.

Marquee.zip(908.92 kb)  

SPUtility - worth a look

I'd seen references to SPUtility before, and probably even used the object when basing code of blog posts I'd found on the net, but inspiration struct me the other day, and I decided to look it up in the SDK.
 
It is a static object that contains a number of useful functions - it also contains a number of obsolete functions, and some downright weird ones (like SPUtility.HideTaiwan and SPUtility.IsEastAsia strike me as ones that won't be widely used).
 
To access the object, you need to add the following using statement:
 
using Microsoft.SharePoint.Utilities;
 
 
I had a quick go through the SDK, an the following are what strikes me as some of the more useful functions this object provides (note, I havent used all of these yet, just went through the SDK then googled the functions I thought sounded interesting):
  • SPUtility.FormatDate

    Allows you to format a given date to any of the SPDateFormat types


    DateTime curDate = DateTime.Now();
    DateTime regionDate = web.RegionalSettings.TimeZone.UTCToLocalTime(web.ParentWeb.RegionalSettings.TimeZone.LocalTimeToUTC(curDate));
    return Convert.ToDateTime(SPUtility.FormatDate(web, regionDate, SPDateFormat.ISO8601));



  • Get the 12-Hive filesystem path

    Returns the filesystem path for the 12-Hive, or any of the folders beneath it.  This is typically (though not always) going to be C:\Program Files\Common Files\Microsoft Shared\web server extensions\12

    //Get path to features directory
    //Would typically return "C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES"
    string featurePath = SPUtility.GetGenericSetupPath("template\\features");


  • Get Full (absolute) URL

    Converts a relative Url into an absolute Url


    //Get url to list item
    SPListItem item = spList.Items[1];
    string itemUrl = SPUtility.GetFullUrl(spSite, item.Url);


  • Redirect to page

    Send a HTTP redirect to the client's browser


    //Redirect to specified page, adding querystring
    string url = "http://portal/TestResults/Pages/results.aspx";

    string queryString = "successflag=passed";

    SPUtility.Redirect(url, SPRedirectFlags.Default, Context, queryString);


  • Send email

    Lets you send an email from the context of the given SPWeb

    //Send email from current SPWeb
    SPWeb web = SPContext.Current.Site.OpenWeb();
    string subject = "Email from the " + web.Title + " web";
    string body = "The body of the email";

    SPUtility.SendEmail(web, false, false, "someone@somewhere.com", subject, body);


  • Transfer to SharePoint success/error page

    Allows you to transfer the browser to the ootb error and success pages

    //Transfer to Error Page
    SPUtility.TransferToErrorPage(ex.Message);

    //Transfer to success page, and specify url to move onto after "Ok" clicked
    SPUtility.TransferToSuccessPage("Operation was completed", @"/Docs/default.aspx", "", "");



There are a bunch of others on there, and although they are not really very well documented, they are certainly worth a look through.

posted 14 January 2009 16:24 by AussieNigel

Programmatically uploading an attachment to a list item in WSS3/MOSS 2007

Posted on 19 July 2007 @ 20:07 in #MOSS 2007

If you need to upload a file into a SharePoint document library through code you can get started with this MSDN article: How to: Upload a File to a SharePoint Site from a Local Folder.

In case you need to do the upload the file as an attachment to a custom list using the object model, the approach is slightly different. Adding a file to the list item can be done by accessing the Attachments collection of the SPListIem:

//code snippet


SPList list = web.Lists[new Guid("my list id")];
if (list != null
)
{
  web.AllowUnsafeUpdates =
true
;
  SPListItem item = list.Items.Add();
  item["Title"] = "my title";

if (fileAttachment.PostedFile != null && fileAttachment.HasFile)
  {
    
Stream
fStream = fileAttachment.PostedFile.InputStream;

     byte[] contents = new byte[fStream.Length];
     fStream.Read(contents, 0, (
int
)fStream.Length);
     fStream.Close();
     fStream.Dispose();

     SPAttachmentCollection attachments = item.Attachments;
    
string fileName = Path.GetFileName(fileAttachment.PostedFile.FileName);
    
attachments.Add(fileName, contents);

   }

  item.Update();
  web.AllowUnsafeUpdates =
false;

}

//snippet end

Removing Single File Upload Menu From Document Library Toolbar MOSS 2007

Posted by: Asfar Sadewa on: February 23, 2008

Well, not exactly removing, just crippling it so it won’t function. Hahah…

It all began with a guy in another department who got this persistent demand of getting rid of the single file upload button from a SharePoint document library upload menu. “We can upload single file from the multiple one, no need to have a single one.” He claimed. Hahah..

Given that I am a world-class-lazy-bum, I googled, but found that some working solutions applied globally towards the entire site collection, and not strictly to one doclib inside one site. Some claimed they have managed to do so by doing various tricks. But again, due to my acute laziness, I decided not to play around with Features, or even those object models, instead, I resorted to JavaScript.

What I did was described in Lazy 101; detect the Upload Menu by it’s many possible identifier (in this case i use its’ “text” attribute), and brutally disabled it. I cunningly inserted a content editor webpart in the page where the doclib tool bar was visible, and chuckled in an insane glee. Mwhuahahahhahuahahahah …

The script is as below:

<script type="text/javascript"> function GetElementByText(tagName, title) { var a = document.getElementsByTagName(tagName); for (var i=0; i < a.length; i++) { if (a[i].text) { if (a[i].text === title) { return a[i]; } } } return null; } if (window.onload) { var oLoad = window.onload; window.onload = function bodyLoad() { oLoad(); var o = GetElementByText("ie:menuitem","Upload Document"); if (o) { o.disabled = true; } } } </script>

[Update] Hey, guess what, a very kind guy has created a better tool for this (he’s even “featurize” it), check it here

How to customise a Sharepoint list with attachments

This problem is pretty well documented across the MSDN forums and developer lists - only recently did I come across a solution, so in the interests of helping out anyone else who has spent months trying to get this to work - here's a brief how-to. It assumes basic knowledge of Sharepoint Designer, MOSS 2007, and a bit of XSL.

You will also need the latest patches for MOSS 2007 which allow attachments to be displayed in customised data views of lists.

What we will create is a summary view of a list which contains 'more...' links to a full view of a list item, where you can download the attachment.

Step 1 - AllItems.aspx

Create a new List which you wish to customise. Open AllItems.aspx and customise it as an XSL Data View - or alternatively, if you wish to display your data on the default.aspx of your site, create a data view. Select a few fields to display which make a good summary, and format it as you wish. If you are using AllItems.aspx I recommend saving this under another name such as 'CurrentItems.aspx' so you don't lose your ability to edit list items.

Create a link somewhere in the dvt_1.rowview template in the format:

<a href="disp.aspx?ID={@ID}">More...</a>


This will link you to a single item display page that we are about to create, and passes the ID of the item to be displayed.

Step 2  - DispForm.aspx

Next open up DispForm.aspx and revert to its Master page's content.

Create a Single Item data view of your list on this page showing all of its fields. Include the Attachments field.

In the dvt_1.rowview template replace the Attachments tag with this:

Attachments: <SharePoint:AttachmentsField ControlMode="Display" 
FieldName="Attachments" runat="server" Visible="true"/>


Now we need to set a Parameter for the List Item ID so that the page will display the corresponding details of an ID passed to it: click to show Common Data View Tasks and click on Parameters. Add a new Parameter called ListItemID. For Parameter Source select Query String, for Query String Variable enter ID and for Default Value enter 0. (Lists begin their first item with an ID of 0).

Next click on Filter and check the box at the bottom marked 'Add XSLT Filtering'. Click Edit.In the section marked 'Edit the XPath expression' enter:

[@ID=$ListItemID]


Click OK, OK again to exit the Filter menu, and save this page as 'disp.aspx'. Notice that this corresponds with the hyperlink we added above.

Now go to Paging and ensure that your list is set to display all items, not just a single item.

If you've set this all up correctly you should now have a full view of your list, which links to a single item view displaying the corresponding attachment for download!

I'm still getting to know XSL and MOSS so I am yet to get a list to display multiple items with corresponding attachments, but I'm sure its a case of fiddling around with parameters...
This entry was written by iriXx, posted on December 15, 2008 at 12:38 PM , filed under , , . Bookmark the permalink. Follow any comments here with the RSS feed for this post. Post a comment or leave a trackback: Trackback URL.

ref:http://irixx.org/2008/12/how-to-customise-a-sharepoint-list-with-attachments.php

Programmatically Adding, Deleting, Copying and Downloading Attachments in SPList

ADDING AN ATTACHMENT TO AN ITEM IN SPLIST :

private void AddNewAttachment(int NodeID)
{
try
{
SPList myList = SPContext.Current.Web.Lists["Item List"];
SPListItem myNewItem = myList.GetItemById(NodeID);

if (fileUpload.PostedFile != null && fileUpload.HasFile)
{
Stream fStream = fileUpload.PostedFile.InputStream;

byte[] contents = new byte[fStream.Length];
fStream.Read(contents, 0, (int)fStream.Length);
fStream.Close();
fStream.Dispose();

SPAttachmentCollection attachments = myNewItem.Attachments;
string fileName = Path.GetFileName(fileUpload.PostedFile.FileName);
attachments.Add(fileName, contents);

myNewItem["Attached FileName"] = fileName; // store the name of the file in a column for future requirements
myNewItem.Update();
}
}
catch (Exception eAdd)
{
string errAdd = eAdd.Message;
}
}


DELETING AN ATTACHMENT FROM SPLIST :

private void DeleteAttachment(int NodeID)
{
try
{
SPList myList = SPContext.Current.Web.Lists["Item List"];
SPListItem delItem = myList.GetItemById(NodeID);
SPAttachmentCollection atCol = delItem.Attachments;
if (delItem["Attached FileName"] != null)
{
string strFileName = delItem["Attached FileName"].ToString();
delItem["Attached FileName"] = string.Empty;
atCol.Delete(strFileName);
delItem.Update();
}
}
catch (Exception eDel)
{
string errDel = eDel.Message;
}
}

DOWNLOADING THE ATTACHMENT :

Find the download link first then reedirect to another aspx page so that the response ending on the current page does not affect the functionalities on this :-

private void DownloadAttachment(int NodeID)
{
try
{
string AttachmentURL = string.Empty;
SPList myList = SPContext.Current.Web.Lists["Item List"];
SPListItem attItem = myList.GetItemById(NodeID);
if (attItem["Attached FileName"] != null)
{
AttachmentURL = “/Lists/Item%20List1/Attachments/” + NodeID.ToString() + “/” + attItem["Attached FileName"].ToString();

System.Web.HttpContext.Current.Session["FileName"] = attItem["Attached FileName"].ToString();
System.Web.HttpContext.Current.Session["Attachment"] = AttachmentURL.Trim();
}
else
{
lblReport.Text = GetMessage(110);
}
if (AttachmentURL != string.Empty)
Page.Response.Write(”");
}
catch (Exception eDwn)
{
string errDwn = eDwn.Message;
}
}
At the aspx page you need to run the code as :

if(System.Web.HttpContext.Current.Session["Attachment"] != null)
{
string strName = System.Web.HttpContext.Current.Session["FileName"].ToString();
string sbURL = System.Web.HttpContext.Current.Session["Attachment"].ToString();
System.Web.HttpResponse response;
response = System.Web.HttpContext.Current.Response;
System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
response.AppendHeader(”Content-disposition”, “attachment; filename=” + strName);
response.AppendHeader(”Pragma”, “cache”);
response.AppendHeader(”Cache-control”, “private”);
response.Redirect(sbURL);
response.End();
}

Now set these sessions to null.

COPYING AN ATTACHMENT FROM ONE ITEM TO ANOTHER IN SPLIST :

private void CopyAttachment(int FromID, int NodeID, string AttachedFile)
{
try
{
SPList myList = SPContext.Current.Web.ParentWeb.Lists["Item List"];
SPListItem myItem = myList.GetItemById(NodeID);
SPListItem myPrevItem = myList.GetItemById(FromID);

SPAttachmentCollection attColl = myPrevItem.Attachments;

SPFile attFile = myPrevItem.ParentList.ParentWeb.GetFile(myPrevItem.Attachments.UrlPrefix + AttachedFile);
string fileRead = myPrevItem.Attachments.UrlPrefix.ToString() + AttachedFile;

StreamReader fsReader = new StreamReader(attFile.OpenBinaryStream());
Stream fStream = fsReader.BaseStream;

byte[] contents = new byte[fStream.Length];
fStream.Read(contents, 0, (int)fStream.Length);
fStream.Close();
fStream.Dispose();

myItem.Attachments.Add(AttachedFile, contents);
myItem.Update();
}
catch (Exception eCopy)
{
string errCopy = eCopy.Message;
}

}

Download File

Reference URL :

http://nehasinha.wordpress.com/2008/05/23/programmticallyc-adding-deleting-copying-and-downloading-attachments-in-splist/

Showing random images in SharePoint 2007 using jQuery

If you’ve been following my blog you know that a bit more than a year ago I’ve published the Imtech Random Image Web Part: a SharePoint web part which allows you to display random images from a list of your choice. The web part I’ve made contains some code which you would have to deploy it in your SharePoint environment to get it working. Did you actually know that you can create the same functionality using no more than a couple of lines of JavaScript and no server-side code at all?

Showing random images: the ingredients

There are two things we need to display random images. First of all an image library with some images in it. It doesn’t matter how many or what kind of images you put in there: it’s okay as long as they are viewable in the browser.

The second thing we need is a Content Editor Web Part which we will use to include the JavaScript which will do the magic for us.

Let’s see some random images

For the purpose of this case I have created a publishing site. The template you choose doesn’t really matter. A WSS3.0 Blank Site would do as well. I’ve uploaded some random photos I’ve found on Flickr to illustrate how it all works.

SharePoint images list with a couple of images in it

As soon as the images list is done, let’s proceed to the page.

Let’s start off with putting on the page the List View Web Part of the Images list:

Images List View Web Part dropped on a publishing page.

Nothing special here. Now let’s do the magic. Let’s add a Content Editor Web Part, edit it, and paste in the Source Editor the following piece of HTML:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script type="text/javascript">
  jQuery.jQueryRandom = 0;
  jQuery.extend(jQuery.expr[":"], {
    random: function(a, i, m, r) {
      if (i == 0) {
        jQuery.jQueryRandom = Math.floor(Math.random() * r.length);
      };
      return i == jQuery.jQueryRandom;
    }
  });
</script>
<script type="text/javascript">
$().ready(function() {
  var a = $("table.ms-summarystandardbody td.ms-vb2 a:random");
  a.parents("div[id^=WebPart]").html('<img src="' + a.attr("href") + '"/>');
});
</script>

What it does? First of all I extend the jQuery framework with the “:random” filter which allows me to pick a randomly chosen element. Then, as soon as the page has been loaded I select all the links from the Images Web Part and pick a random one to display. The last thing I do is to substitute the list of images with the random image I’ve just picked:

The JavaScript replaces the contents of the Images List View Web Part with a randomly picked image

That’s all!

Each time you load this page another image will be picked and displayed.

What’s next?

The example I’ve presented is quite simple. Because we’re using a common SharePoint list here, you could store some metadata together with the images and make them appear on the page as well. You could extend the script to add the title, description and maybe even a link to a different site: the sky is the limit.

Summary

Providing custom functionality doesn’t necessarily have to mean development and deployment. By just extending the standard SharePoint functionality with JavaScript you can easily create great features which can enhance the overall experience of your application. Using the jQuery framework you can simplify creating these enhancements even more. jQuery covers for you all the basics and allows you to focus on the functionality you to provide to your users.

ref:http://blog.mastykarz.nl/showing-random-images-sharepoint-2007-jquery/

Talking about Sharepoint Marquee Scroll Listings

 

Quote

Sharepoint Marquee Scroll Listings
 
One of our clients approached us with an interesting idea. I welcomed his request because he was such an ambitious client. Anyway, the request was scrolling the listings of any area. He wanted to display the listings on a marquee tag. While researching it, I couldn't find anything similar on the net, so I thought I’d share this webpart with you .

 

I created a C# webpart to have the following features :

 

Image11

 

1- display area listings ordered by the created date (last created first shows)

2- an icon image (e.g. Company logo) separates between listings

  

Since I have attached the source code of this webpart; you can upgrade the solution to have other feature like:

1- show the top (n) number of  listings

2- stop scrolling when mouse over

3- you can set a scroll left/scroll right functions

 

Here are simple steps to deploy the webpart on your portal

 

Step 1

Download the the project from here http://cid-c6d240d97b073074.skydrive.live.com/self.aspx/Attachments/MarqueeListings_Zip.zip

 

Step 2

Go to the bin\Debug where the assembly file of the Marquee listing resides(MarqueeListings.dll) .this dll file has to be dragged and dropped to the GAC

(HD:\WINDOWS\assembly ).

 

 

Step 3

Copy the image MarqueeIcon.GIF to the sharepoint images

location :  HD:\Program Files\Common Files\Microsoft Shared\web server

extensions\60\TEMPLATE\LAYOUTS\1033\IMAGES  

 

Step 4

The webpart has to be registered as safe control. so copy the following script

 

<SafeControl Assembly="MarqueeListings, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=78fabca6851eb8f0" Namespace="Sharepoint.Afkar.MarqueeListings" TypeName="*" Safe="True" />

      < P Assembly="MarqueeListings, Version=1.0.0.0, Culture=Neutral,

 

Then add it to the web.config  which resides on the virtual  directory of your portal

 

Step 5

Restart IIS.

 

Step 6

Import the webpart MarqueeGroupedListings.dwp to the portal. The web part displays the grouped listings of the home page of the server . if you want to change to display the listings of another area you need to modify the web part  .under the Marquee options write the Url of the area (e.g.  http://serverName/Area2)

Image2

 

Step 7

There is no step 7. Its Over!!!  But incase you want to display other area's listings you need to edit the webpart properties giving the correct area URL

Image3

 

Code Sample
private const string defaultURL = "";
  private string _URL = defaultURL;

  [Browsable(true),Category("Marquee Options"),
  DefaultValue(defaultURL),
  WebPartStorage(Storage.Personal),
  FriendlyName("Area URL"),Description("Area URL")]
  public string URL
  {
   get
   {
    return _URL;
   }

   set
   {
    _URL = value;
   }
  }
   protected override void RenderWebPart(HtmlTextWriter output)
  {
   try
   {
 //******************************This section to get the Grouped listings of any area***************
    AreaListingCollection areaListings=GetAreaListings(this.URL.ToString());
     if (areaListings!=null)
    {
     if (areaListings.Count>0)
     {
      string str="";
      int counter=0;
      ArrayList textArrayList = new ArrayList();
      ArrayList linkArrayList = new ArrayList();
      //this is order the last one entered appears in the first
      int TotalNewNUm=0;

      foreach (AreaListing areaListing in areaListings)
      {
       textArrayList.Add (areaListing.Title.ToString()  )  ;
       linkArrayList.Add (areaListing.URL.ToString()  )  ;
       TotalNewNUm++;
               
      }//foreach
      int i ;
      for(i=TotalNewNUm-1 ;i>=0  ;i--)
      {
       str+= "<a href=" + linkArrayList[i] + " target=_blank > <span style='font-family:verdana ; font-size: 8pt ;  height:5px; margin-bottom:3px; '>" + textArrayList[i] + "</span> </a>" ;         
       counter++;
       if (i !=0)
       {
        str+=   "<img style='margin-top:5px;' src='/_layouts/1033/images/MarqueeIcon.GIF' >" ;
       }
      }

      output.Write( " <marquee>" + str + "</marquee>" );
         
     }
     else
     {
     output.WriteLine (" There is No listings in this area  " + this.URL.ToString() + "   !");
     }
    }
    else
    {
     output.Write ("Wrong area URL, Go back to the webpart properties to correct the area URL (e.g http://serverName:port/areaName)");
    }

   }
     
   catch (Exception ee)
   {
    output.Write (   "Errorr : " + ee.Message   );
    
   }
  }
  private AreaListingCollection GetAreaListings(string url)
  {

   SPSite siteCollection;
   SPWeb site ;

   try
   {
    if (url=="")
    {
     siteCollection = SPControl.GetContextSite(Context);
     site = SPControl.GetContextWeb(Context);   
    }
    else
    {
     siteCollection = new SPSite(url);
     site = siteCollection.OpenWeb();
    }
   
    TopologyManager topologyManager = new TopologyManager();
    Uri uri =new Uri(siteCollection.Url);//new Uri("http://MyPortal");
    PortalSiteCollection sites = topologyManager.PortalSites;
    PortalContext portalContext = PortalApplication.GetContext(sites[uri]);
    Area newsArea = AreaManager.GetArea(portalContext, site.ID);
    return newsArea.Listings;
    
   }
   catch (Exception ee)
   {
     return null;
   }
  }

  

This Article Published on:

http://ahmadadainat.spaces.live.com

 

http://www.msd2d.com/Content/Tip_viewitem_03.aspx?section=SharePoint&category=Development&id=2aeb45ef-c623-4b79-b6cf-1e5354276422

 

Please drop me an email if you have any comments or enquiries.  ahmad.adainat@gmail.com , dont forget to swing by my blog to see my latests.

 

 

何小碩 .

Occupation
Location
Interests
沒有關於我~~ 不想寫@@

Search

Loading...
人的一生總是要有一些可以留念的東西
by 
Photo 1 of 4