Archive for November, 2010
Error occurred in deployment step ‘Recycle IIS Application Pool’: The local SharePoint server is not available. Check that the server is running and connected to the SharePoint farm.
Posted by Jake in SharePoint, Visual Studio on November 4, 2010
If you get this error when deploying a SharePoint solution in Visual Studio on a SharePoint server, check that you have db_owner SQL Server permissions on the SharePoint content databases.
Update: I received a similar error to the one listed above:
Error occurred in deployment step ‘Recycle IIS Application Pool’:<nativehr>0x80070005</nativehr><nativestack></nativestack> Access denied.
For this error, make sure that you are a Site Collection Administrator
Displaying a SharePoint Modal Dialog window from SPGridView
Posted by Jake in .Net, JavaScript, SharePoint on November 4, 2010
I recently built a web part that required a list of announcements with summaries to be presented to a group of users. Additionally, there was detailed content that was to be displayed in a Pop-up type window. I used a gridview to display the list, which was pulled in from a web service and passing in a datatable. That part was rather easy, but the data for the details was stored in a column that contained HTML formed text. My first thought was to pass that to a javascript function that would call the method for displaying a SharePoint dialog: SP.UI.ModalDialog.showModalDialog();
When I added the HTML as a parameter to the javascript function, the result of doing that was rather odd. The HTML text was displayed in the web part itself, which was not going to work. I tried a few workarounds like encoding the HTML text and such, but I did not get good results with that either. Instead, I knew that I had the ID for the items that I was displaying in the list. I could pass in the ID to the dialog page and retrieve the HTML text at that point. Unfortunately, it required two round trips to the web service (and subsequently the SQL Server).
Another issue when displaying the dialog was that the page that I was displaying contained all the elements of the master page that typical pages display (header, footer, etc). This made the dialog too busy for the simple task it was asked to do. To fix this, I added the MasterPageFile attribute to the Page directive which overrides DynamicMasterPageFile attribute.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AnnouncementPage.aspx.cs" Inherits="MyPages.WebParts.Layouts.AnnouncementPage" DynamicMasterPageFile="~masterurl/custom.master" MasterPageFile="~/_layouts/applicationv4.master" %>
In the end, a uncluttered summary list and detailed model dialog:
Code that made it happen:
<script type="text/javascript"> function OpenDialog(aid) { var options = SP.UI.$create_DialogOptions(); options.url = "/_layouts/MyPages/AnnouncementPage.aspx?announcementId=" + aid; options.width = 560; options.height = 480; options.dialogReturnValueCallback = Function.createDelegate(null, OnCloseDialog); SP.UI.ModalDialog.showModalDialog(options); } </script> <div class="spgridannounce"> <SharePoint:SPGridView ID="spGridViewAnnouncements" runat="server" AutoGenerateColumns="false" ShowHeader="false"> <HeaderStyle BackColor="Transparent" ForeColor="#08630C" /> <AlternatingRowStyle BackColor="Transparent" /> <RowStyle BackColor="Transparent" ForeColor="#BF5629" /> <Columns> <asp:TemplateField> <HeaderTemplate> Announcement</HeaderTemplate> <HeaderStyle /> <ItemTemplate> <a href='javascript:OpenDialog(<%# Eval("announcement_id")%>)'> <%# Eval("subject") %> </a> </ItemTemplate> </asp:TemplateField> </Columns> </SharePoint:SPGridView> </div>