Click here to Skip to main content
15,888,527 members
Articles / Web Development / ASP.NET

SharePoint CAML Query Builder Dialog for your Web Parts

Rate me:
Please Sign up or sign in to vote.
4.65/5 (9 votes)
24 Mar 2009CPOL7 min read 167.3K   847   34  
A SharePoint CAML query builder dialog for your Web Parts
<%@ Page Language="C#" AutoEventWireup="true"  MasterPageFile="~/_layouts/application.master" CodeBehind="EditReminderSettings.aspx.cs" Inherits="Mullivan.SharePoint.Pages._EditReminderSettings,Mullivan.SharePoint.Pages, Version=1.0.1.0, Culture=neutral, PublicKeyToken=c37a514ec27d3057" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 

<asp:Content ID="Content4" ContentPlaceHolderId="PlaceHolderPageTitle" runat="server">
	<SharePoint:EncodedLiteral ID="EncodedLiteral1" runat="server" text="<%$Resources:wss,listedit_pagetitle%>" EncodeMethod='HtmlEncode'/>
</asp:Content>
<asp:Content ID="Content7" contentplaceholderid="PlaceHolderAdditionalPageHead" runat="server">
	<SharePoint:ScriptLink ID="ScriptLink1" language="javascript" name="QueryBuilder.js" runat="server" />
	<SharePoint:ScriptLink ID="ScriptLink4" language="javascript" name="MullivanUtility.js" runat="server" />
	<script type="text/javascript" language="javascript">

	    function ReminderSettings_LaunchQueryBuilder(controlId, listUrl, serverUrl) {

	        var control = document.getElementById(controlId);

	        var callback = function(results) {
	            ReminderSettings_SetQuery(controlId, results);
	        };

	        var query = control.value;
	        query = Mullivan.Utilities.UrlEncode(query);

	        QB_LaunchQueryBuilderDialog(serverUrl, listUrl, null, query, false, true, false, callback);
	    }

	    function ReminderSettings_LaunchViewBuilder(controlId, listUrl, serverUrl) {

	        var control = document.getElementById(controlId);

	        var callback = function(results) {
	            ReminderSettings_SetView(controlId, results);
	        };


	        var viewFields = control.value;
	        viewFields = Mullivan.Utilities.UrlEncode(viewFields);

	        QB_LaunchQueryBuilderDialog(serverUrl, listUrl, viewFields, null, true, false, false, callback);
	    }

	    function ReminderSettings_SetQuery(controlId, results) {
	        var tbox = document.getElementById(controlId);

	        if (results == null || results.length < 2)
	            return;

	        //Index 1 contains the query and 0 is for the view if it is being used.
	        tbox.value = results[1];
	    }

	    function ReminderSettings_SetView(controlId, results) {
	        var tbox = document.getElementById(controlId);

	        if (results == null || results.length < 2)
	            return;

	        //Index 1 contains the query and 0 is for the view if it is being used.
	        tbox.value = results[0];
	    }

	</script>
</asp:Content>


<asp:Content ID="Content5" ContentPlaceHolderId="PlaceHolderPageDescriptionRowAttr" runat="server">
style="display:none;"
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderId="PlaceHolderPageDescriptionRowAttr2" runat="server">
style="display:none;"
</asp:Content>
<asp:Content ID="Content1" ContentPlaceHolderId="PlaceHolderPageTitleInTitleArea" runat="server">
<asp:Image ImageUrl="~/_layouts/images/remindersettings.gif" runat="server" />
<SharePoint:FormattedString ID="FormattedString1" FormatText="Edit Reminder Settings - {0}" EncodeMethod="HtmlEncodeAllowSimpleTextFormatting" runat="server">
	<asp:HyperLink id="onetidListEditTitleLink" runat="server" visible="true"/>
</SharePoint:FormattedString>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderId="PlaceHolderPageImage" runat="server">
	<IMG SRC="/_layouts/images/blank.gif" width=1 height=1 alt="">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderId="PlaceHolderPageDescription" runat="server">
</asp:Content>

<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">

<table class="ms-formtoolbar" cellpadding="2" cellspacing="0" border="0" width="100%" >
  <tr>
	<td width="99%" class="ms-toolbar" nowrap>
	    <IMG SRC="/_layouts/images/blank.gif" width=1 height=18 alt="" />
	</td>
		<td class="ms-toolbar" nowrap="true">
		    <table cellpadding=0 cellspacing=0 width=100%>
		        <tr>
		            <td align="right"  width=100% nowrap>
			            <asp:Button ID="btnOK2" Text="OK" AccessKey="O" 
                            CssClass="ms-ButtonHeightWidth" runat="server" onclick="btnOK_Click" />
		            </td> 
		        </tr> 
		    </table>
		</td>
	<td class=ms-separator> </td>
		<td class="ms-toolbar" nowrap="true">
		    <table cellpadding=0 cellspacing=0 width=100%>
		        <tr>
		            <td align="right" width=100% nowrap>
		                <asp:Button ID="btnCancel2" Text="Cancel" AccessKey="C" 
                            CssClass="ms-ButtonHeightWidth" runat="server" onclick="btnCancel_Click" />
		            </td> 
	            </tr> 
            </table>
		</td>
  </tr>
</table>
<table class="ms-formtable" style="margin-top: 8px;" border=0 cellpadding=0 cellspacing=0 width=100%>
    <tr>
        <td nowrap="true" valign="top" width="190px" class="ms-formlabel">
            <H3 class="ms-standardheader">
		        <nobr>Name</nobr>
	        </H3>
	    </td>
		<td valign="top" class="ms-formbody">
			<span dir="none">
		        <asp:TextBox ID="tboxName" runat="server" Width="200px" />
		        <asp:RequiredFieldValidator ID="rfvName" ControlToValidate="tboxName" runat="server" EnableClientScript="False" ErrorMessage="Name is required!" SetFocusOnError="True" />
	        </span>
		</td>
	</tr>
    <tr>
		<td nowrap="true" valign="top" width="190px" class="ms-formlabel">
		    <H3 class="ms-standardheader">
		    Type
	        </H3>
	    </td>
		<td valign="top" class="ms-formbody">
			<span dir="none">
		        <asp:DropDownList ID="ddlType" runat="server" Width="200px" />
	        </span>
		</td>
	</tr>
	<tr>
		<td nowrap="true" valign="top" width="190px" class="ms-formlabel">
		    <H3 class="ms-standardheader">
		        Recurrence
	        </H3>
	    </td>
		<td valign="top" class="ms-formbody">
			<span dir="none">
		        <asp:DropDownList ID="ddlRecurrence" AutoPostBack="true" runat="server" Width="200px" />
		        <table style="padding-left:25px" cellpadding="0" cellspacing="0" border="0" width="100%">
			        <tr>
			            <td class="ms-toolbar" style="width:140px;text-align:right;padding-right:10px">
			                <H3 class="ms-standardheader">
			                    <asp:Label ID="lblStartMinute" runat="server">Start Minute</asp:Label>
			                </H3>
			            </td>
			            <td valign="top" class="ms-formbody" style="border:0px">
			                    <span dir="none">
			                        <asp:TextBox ID="tboxMinute" runat="server" Width="200px" />
                                    <asp:RangeValidator ID="rvMinute" runat="server" 
                                        ErrorMessage="Valid values are 0 - 59!" ControlToValidate="tboxMinute" 
                                        MaximumValue="59" MinimumValue="0" SetFocusOnError="True" Type="Integer" EnableClientScript="False"></asp:RangeValidator>
                                </span>
                        </td>
			        </tr>
			        <tr>
			            <td class="ms-toolbar" style="text-align:right;padding-right:10px">
			                <H3 class="ms-standardheader">
			                    <asp:Label ID="lblStartHour" runat="server">Start Hour</asp:Label>
			                </H3>
			            </td>
			            <td valign="top" class="ms-formbody" style="border:0px">
			                <span dir="none">
			                    <asp:TextBox ID="tboxHour" runat="server" Width="200px" />
                                <asp:RangeValidator ID="rvHour" runat="server" 
                                    ErrorMessage="Valid values are 0 - 23!" ControlToValidate="tboxHour" 
                                    MaximumValue="23" MinimumValue="0" SetFocusOnError="True" Type="Integer" EnableClientScript="False">
                                    </asp:RangeValidator>
                            </span>
                        </td>
			        </tr>
			        <tr>
			            <td class="ms-toolbar" style="text-align:right;padding-right:10px">
			                <H3 class="ms-standardheader">
			                    <asp:Label ID="lblStartDay" runat="server">Start Day</asp:Label>
			                </H3>
			            </td>
			            <td valign="top" class="ms-formbody" style="border:0px">
			                <span dir="none">
			                    <asp:TextBox ID="tboxDay" runat="server" Width="200px" />
                                <asp:RangeValidator ID="rvDay" runat="server" 
                                    ErrorMessage="Valid values are 1 - 31!" ControlToValidate="tboxDay" 
                                    MaximumValue="31" MinimumValue="1" SetFocusOnError="True" Type="Integer" EnableClientScript="False"></asp:RangeValidator>   
                            </span>
                        </td>
			        </tr>
			        <tr>
			            <td class="ms-toolbar" style="text-align:right;padding-right:10px">
			                <H3 class="ms-standardheader">
			                    <asp:Label ID="lblDayOfWeek" runat="server">Start Day Of Week</asp:Label>
			                </H3>
			            </td>
			            <td valign="top" class="ms-formbody" style="border:0px">
			                <span dir="none">
			                    <asp:DropDownList ID="ddlDayOfWeek" runat="server" Width="200px" />
			                </span>
			            </td>
			        </tr>
			    </table>
		    </span>	
		</td>
	</tr>
	<tr>
		<td nowrap="true" valign="top" width="190px" class="ms-formlabel">
		    <H3 class="ms-standardheader">
		    View Fields
	        </H3>
	    </td>
		<td valign="top" class="ms-formbody" >
			    <table cellpadding="0" cellspacing="0" border="0">
			        <tr>
			            <td>
			                <asp:TextBox ID="tboxViewFields" runat="server" TextMode="MultiLine" Height="200px" Width="400px"  />
			            </td>
			            <td class="ms-formlabel" style="border:0px;padding-left:20px">
			                <asp:Button ID="btnBuildView" CssClass="ms-ButtonHeightWidth" Text="Build View" runat="server" />
			                <br /><br />
			                <H3 class="ms-standardheader">
		                        Fill from List View
	                        </H3>
	                        <br />
	                        <asp:DropDownList ID="ddlFillViewFields" Width="200px" runat="server" />
			                <asp:Button ID="btnFillViewFields" Text="Fill" CssClass="ms-ButtonHeightWidth" OnClick="btnFillViewFields_Click" runat="server" />
			            </td>
			        </tr>
			    </table>
		</td>
	</tr>
	<tr>
		<td nowrap="true" valign="top" width="190px" class="ms-formlabel">
		    <H3 class="ms-standardheader">
		    Query
	        </H3>
	    </td>
		<td valign="top" class="ms-formbody" >
			  <table cellpadding="0" cellspacing="0" border="0">
			        <tr>
			            <td>
		                    <asp:TextBox ID="tboxQuery" runat="server" TextMode="MultiLine" Height="200px" Width="400px" />
	                    </td>
			            <td class="ms-formlabel" style="border:0px;padding-left:20px">
			                <asp:Button ID="btnBuildQuery" CssClass="ms-ButtonHeightWidth" Text="Build Query" runat="server" />
			                <br /> <br />
			                <H3 class="ms-standardheader">
		                        Fill from List View
	                        </H3>
	                        <br />
	                        <asp:DropDownList ID="ddlFillQuery" Width="200px" runat="server" />
			                <asp:Button ID="btnFillQuery" Text="Fill" CssClass="ms-ButtonHeightWidth" OnClick="btnFillQuery_Click" runat="server" />
			            </td>
			        </tr>
			    </table>
		</td>
	</tr>
    <tr>
		<td nowrap="true" valign="top" width="190px" class="ms-formlabel">
		    <H3 class="ms-standardheader">
		    Mail To
	        </H3>
	    </td>
		<td valign="top" class="ms-formbody" >
			<span dir="none">
			    <asp:TextBox ID="tboxMailTo" runat="server" TextMode="MultiLine" Height="200px" Width="400px" />
			    <asp:RequiredFieldValidator ID="rfvMailTo" runat="server" ControlToValidate="tboxMailTo" EnableClientScript="False" SetFocusOnError="True" ErrorMessage="At least one address is required."></asp:RequiredFieldValidator>
	        </span>
		</td>
	</tr>
	<tr>
		<td nowrap="true" valign="top" width="190px" class="ms-formlabel">
		    <H3 class="ms-standardheader">
		    Subject
	        </H3>
	    </td>
		<td valign="top" class="ms-formbody">
			<span dir="none">
		        <asp:TextBox ID="tboxSubject" runat="server" CssClass="ms-long" Width="400px" />
	            <asp:RequiredFieldValidator ID="rfvSubject" runat="server" ControlToValidate="tboxSubject" EnableClientScript="False" SetFocusOnError="True" ErrorMessage="Subject is required."></asp:RequiredFieldValidator>
	        </span>
		</td>
	</tr>
	<tr>
		<td nowrap="true" valign="top" width="190px" class="ms-formlabel">
		    <H3 class="ms-standardheader">
		    XSL Transform (Body)
		    </H3>
		</td>
		<td valign="top" class="ms-formbody" >
			<span dir="none">
			    <asp:TextBox ID="tboxXslTransform" runat="server" TextMode="MultiLine" Height="200px" Width="400px" />
			    <asp:RequiredFieldValidator ID="rfvXslTransform" runat="server" ControlToValidate="tboxXslTransform" EnableClientScript="False" SetFocusOnError="True" ErrorMessage="XSL Transform is required."></asp:RequiredFieldValidator>
			</span>
		</td>
	</tr>
    <tr>
		<td nowrap="true" valign="top" width="190px" class="ms-formlabel">
		    <H3 class="ms-standardheader">
		        Other Options
	        </H3>
	    </td>
		<td valign="top" class="ms-formbody" >
			<span dir="none">
		        <asp:CheckBox ID="cboxSendNoResult" Text="Send reminder even if there are no results." runat="server" />
	        </span>
		</td>
	</tr>
</table>
<table cellpadding=0 cellspacing=0 width=100%>
    <tr>
        <td class="ms-formline">
            <IMG SRC="/_layouts/images/blank.gif" width=1 height=1 alt="">
        </td>
    </tr>
</table>
<table cellpadding=0 cellspacing=0 width=100% style="padding-top: 7px">
    <tr>
        <td width=100%>	
            <table class="ms-formtoolbar" cellpadding="2" cellspacing="0" border="0" width="100%" >
                <tr>
	                <td width="99%" class="ms-toolbar" nowrap>
	                    <IMG SRC="/_layouts/images/blank.gif" width=1 height=18 alt="">
	                </td>
		            <td class="ms-toolbar" nowrap="true">
	                    <table cellpadding=0 cellspacing=0 width=100%>
	                        <tr>
	                            <td align="right"  width=100% nowrap>
			                        <asp:Button ID="btnTest" Text="Test" AccessKey="O" 
                                        CssClass="ms-ButtonHeightWidth" runat="server" onclick="btnTest_Click" />
		                        </td> 
		                    </tr> 
		                </table>
		            </td>
	                <td class=ms-separator> 
	                </td>
		            <td class="ms-toolbar" nowrap="true">
	                    <table cellpadding=0 cellspacing=0 width=100%>
	                        <tr>
	                            <td align="right"  width=100% nowrap>
			                        <asp:Button ID="btnOK" Text="OK" AccessKey="O" 
                                        CssClass="ms-ButtonHeightWidth" runat="server" onclick="btnOK_Click" />
		                        </td> 
		                    </tr> 
		                </table>
		            </td>
	                <td class=ms-separator> 
	                </td>
		            <td class="ms-toolbar" nowrap="true">
	                    <table cellpadding=0 cellspacing=0 width=100%>
	                        <tr>
	                            <td align="right" width=100% nowrap>
		                            <asp:Button ID="btnCancel" Text="Cancel" AccessKey="C" 
                                        CssClass="ms-ButtonHeightWidth" runat="server" onclick="btnCancel_Click" />
		                        </td> 
		                    </tr> 
		                </table>
		            </td>
                </tr>
            </table>
        </td>
    </tr>
</table>
<asp:Literal ID="litTest" runat="server" />
</asp:Content>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior)
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions