I have two RadGrids (RadGrid1 and RadGrid2)
In radgrid1 I have a list of jobs with a field called "JobID", on a button click, it inserts JobID and current username into another table which RadGrid2 is based on.
I would like to add a test/check to my button click event, that checks RadGrid2 to see if the JobID that is being inserted already exist in radgrid2, and if so pop-up a radalert saying that tells the user they already have that JobID in radgrid2.
I will inclide my current working code, so you can see where I am at, thnks for any help you can provide.
In radgrid1 I have a list of jobs with a field called "JobID", on a button click, it inserts JobID and current username into another table which RadGrid2 is based on.
I would like to add a test/check to my button click event, that checks RadGrid2 to see if the JobID that is being inserted already exist in radgrid2, and if so pop-up a radalert saying that tells the user they already have that JobID in radgrid2.
I will inclide my current working code, so you can see where I am at, thnks for any help you can provide.
<%@ Page Title="" Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" |
CodeFile="view.aspx.vb" Inherits="jobs_view" %> |
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> |
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server"> |
</asp:Content> |
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server"> |
<span class="hdrtext">Available Jobs</span> |
<telerik:RadGrid ID="RadGrid1" runat="server" DataSourceID="dsViewJobs" GridLines="None" |
Skin="Default"> |
<MasterTableView AutoGenerateColumns="False" DataKeyNames="JobID" DataSourceID="dsViewJobs"> |
<RowIndicatorColumn> |
<HeaderStyle Width="20px"></HeaderStyle> |
</RowIndicatorColumn> |
<ExpandCollapseColumn> |
<HeaderStyle Width="20px"></HeaderStyle> |
</ExpandCollapseColumn> |
<Columns> |
<telerik:GridBoundColumn DataField="JobID" DataType="System.Int32" HeaderText="JobID" |
ReadOnly="True" SortExpression="JobID" UniqueName="JobID" Visible="False"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="JobTitle" HeaderText="JobTitle" SortExpression="JobTitle" |
UniqueName="JobTitle" Visible="False"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="JobFile" HeaderText="JobFile" SortExpression="JobFile" |
UniqueName="JobFile" Visible="False"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="PositionQty" DataType="System.Int32" HeaderText="PositionQty" |
SortExpression="PositionQty" UniqueName="PositionQty" Visible="False"> |
</telerik:GridBoundColumn> |
<telerik:GridHyperLinkColumn DataNavigateUrlFields="JobFile" DataTextField="JobTitle" |
HeaderText="Job Title" UniqueName="JobFileHyperLink"> |
</telerik:GridHyperLinkColumn> |
<telerik:GridTemplateColumn HeaderText="Apply" UniqueName="Apply"> |
<ItemTemplate> |
<asp:Button ID="btnApply" runat="server" Text="Apply" OnClick="btnApply_Click" /> |
</ItemTemplate> |
</telerik:GridTemplateColumn> |
</Columns> |
</MasterTableView> |
</telerik:RadGrid> |
<asp:SqlDataSource ID="dsViewJobs" runat="server" ConnectionString="<%$ ConnectionStrings:csSSEA %>" |
SelectCommand="SELECT * FROM [Jobs] ORDER BY [JobTitle], [PositionQty]" ConflictDetection="CompareAllValues" |
DeleteCommand="DELETE FROM [Jobs] WHERE [JobID] = @original_JobID AND (([JobTitle] = @original_JobTitle) OR ([JobTitle] IS NULL AND @original_JobTitle IS NULL)) AND (([JobFile] = @original_JobFile) OR ([JobFile] IS NULL AND @original_JobFile IS NULL)) AND [PositionQty] = @original_PositionQty" |
InsertCommand="INSERT INTO [UserJobs] ([Username], [JobID]) VALUES (@Username, @JobID)" |
OldValuesParameterFormatString="original_{0}" UpdateCommand="UPDATE [Jobs] SET [JobTitle] = @JobTitle, [JobFile] = @JobFile, [PositionQty] = @PositionQty WHERE [JobID] = @original_JobID AND (([JobTitle] = @original_JobTitle) OR ([JobTitle] IS NULL AND @original_JobTitle IS NULL)) AND (([JobFile] = @original_JobFile) OR ([JobFile] IS NULL AND @original_JobFile IS NULL)) AND [PositionQty] = @original_PositionQty"> |
<DeleteParameters> |
<asp:Parameter Name="original_JobID" Type="Int32" /> |
<asp:Parameter Name="original_JobTitle" Type="String" /> |
<asp:Parameter Name="original_JobFile" Type="String" /> |
<asp:Parameter Name="original_PositionQty" Type="Int32" /> |
</DeleteParameters> |
<UpdateParameters> |
<asp:Parameter Name="JobTitle" Type="String" /> |
<asp:Parameter Name="JobFile" Type="String" /> |
<asp:Parameter Name="PositionQty" Type="Int32" /> |
<asp:Parameter Name="original_JobID" Type="Int32" /> |
<asp:Parameter Name="original_JobTitle" Type="String" /> |
<asp:Parameter Name="original_JobFile" Type="String" /> |
<asp:Parameter Name="original_PositionQty" Type="Int32" /> |
</UpdateParameters> |
<InsertParameters> |
<asp:ProfileParameter Name="Username" PropertyName="UserName" Type="String" /> |
<asp:Parameter Name="JobID" DefaultValue="1" Type="Int32" /> |
</InsertParameters> |
</asp:SqlDataSource> |
<br /> |
<telerik:RadWindowManager ID="RadWindowManager1" runat="server" IconUrl="/img/icons/error.png" |
Skin="Forest" Title="Error"> |
<Windows> |
<telerik:RadWindow ID="radconfirm" IconUrl="/img/icons/help.png"></telerik:RadWindow> |
</Windows> |
</telerik:RadWindowManager> |
<span class="hdrtext">Jobs You Have Applied For</span> |
<script type="text/javascript"> |
var oldConfirm = radconfirm; |
window.radconfirm = function(text, mozEvent) { |
var ev = mozEvent ? mozEvent : window.event; //Moz support requires passing the event argument manually |
//Cancel the event |
ev.cancelBubble = true; |
ev.returnValue = false; |
if (ev.stopPropagation) ev.stopPropagation(); |
if (ev.preventDefault) ev.preventDefault(); |
//Determine who is the caller |
var callerObj = ev.srcElement ? ev.srcElement : ev.target; |
//Call the original radconfirm and pass it all necessary parameters |
if (callerObj) { |
//Show the confirm, then when it is closing, if returned value was true, automatically call the caller's click method again. |
var callBackFn = function(arg) { |
if (arg) { |
callerObj["onclick"] = ""; |
if (callerObj.click) callerObj.click(); //Works fine every time in IE, but does not work for links in Moz |
else if (callerObj.tagName == "A") //We assume it is a link button! |
{ |
try { |
eval(callerObj.href) |
} |
catch (e) { } |
} |
} |
} |
oldConfirm('Are you sure you want to delete this job from your application?', callBackFn, 300, 100, null,'Delete Confirmation'); |
} |
return false; |
} |
</script> |
<telerik:RadGrid ID="RadGrid2" runat="server" DataSourceID="dsViewJobsAppliedFor" |
GridLines="None" Skin="Default"> |
<MasterTableView AutoGenerateColumns="False" DataKeyNames="UserJobID" DataSourceID="dsViewJobsAppliedFor" |
AllowAutomaticDeletes="True"> |
<RowIndicatorColumn> |
<HeaderStyle Width="20px"></HeaderStyle> |
</RowIndicatorColumn> |
<ExpandCollapseColumn> |
<HeaderStyle Width="20px"></HeaderStyle> |
</ExpandCollapseColumn> |
<Columns> |
<telerik:GridBoundColumn DataField="username" HeaderText="username" SortExpression="username" |
UniqueName="username" Visible="False"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="UserJobID" DataType="System.Int32" HeaderText="UserJobID" |
SortExpression="UserJobID" UniqueName="UserJobID" ReadOnly="True" Visible="False"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="JobID" DataType="System.Int32" HeaderText="JobID" |
SortExpression="JobID" UniqueName="JobID" Visible="False"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="JobTitle" HeaderText="JobTitle" SortExpression="JobTitle" |
UniqueName="JobTitle" Visible="False"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="JobFile" HeaderText="JobFile" SortExpression="JobFile" |
UniqueName="JobFile" Visible="False"> |
</telerik:GridBoundColumn> |
<telerik:GridHyperLinkColumn DataNavigateUrlFields="JobFile" DataTextField="JobTitle" |
HeaderText="Job Title" UniqueName="column"> |
</telerik:GridHyperLinkColumn> |
<%--<telerik:GridButtonColumn ButtonType="PushButton" CommandName="Delete" |
Text="Delete" UniqueName="Delete" HeaderText="Delete" |
ConfirmText="Are you sure you want to delete this job from your application?" > |
</telerik:GridButtonColumn>--%> |
<telerik:GridTemplateColumn UniqueName="DeleteColumn" HeaderText="Delete"> |
<%-- <HeaderTemplate> |
<table width="100%"> |
<tr> |
<td style="width:50%"> |
RadConfirm</td> |
<td style="width:50%"> |
Default confirm</td> |
</tr> |
</table> |
</HeaderTemplate>--%> |
<ItemTemplate> |
<asp:Button ID="btnDelete" ToolTip="Delete Record" runat="server" CausesValidation="False" |
Text="Delete" CommandName="Delete" OnClientClick="return radconfirm('Are you sure you want to delete this record?', event);" /> |
<%--<table width="100%"> |
<tr> |
<td> |
</td> |
<td> |
<asp:ImageButton ID="ImageButton1" ToolTip="Delete Record" runat="server" CausesValidation="False" |
CommandName="Delete" OnClientClick="return confirm('Are you sure you want to delete this record?');" |
ImageUrl="~/RadControls/Grid/Skins/Default/Delete.gif" /> |
</td> |
</tr> |
</table>--%> |
</ItemTemplate> |
</telerik:GridTemplateColumn> |
</Columns> |
<EditFormSettings> |
<EditColumn ButtonType="ImageButton"> |
</EditColumn> |
</EditFormSettings> |
</MasterTableView> |
</telerik:RadGrid> |
<asp:SqlDataSource ID="dsViewJobsAppliedFor" runat="server" ConflictDetection="CompareAllValues" |
ConnectionString="<%$ ConnectionStrings:csSSEA %>" DeleteCommand="DELETE FROM [UserJobs] WHERE [userjobid] = @original_userjobid" |
InsertCommand="INSERT INTO [UserJobs] ([Username], [JobID]) VALUES (@Username, @JobID)" |
OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT uj.username, uj.UserJobID, uj.JobID, j.JobTitle, j.JobFile FROM UserJobs uj, Jobs j WHERE ([Username] = @UserName) and uj.jobid = j.jobid" |
UpdateCommand="UPDATE [UserJobs] SET [Username] = @Username, [JobID] = @JobID WHERE [id] = @original_id AND [Username] = @original_Username AND [JobID] = @original_JobID"> |
<SelectParameters> |
<asp:ProfileParameter Name="Username" PropertyName="UserName" Type="String" /> |
</SelectParameters> |
<DeleteParameters> |
<asp:Parameter Name="original_userjobid" Type="Int32" /> |
<asp:Parameter Name="original_Username" Type="String" /> |
<asp:Parameter Name="original_JobID" Type="Int32" /> |
</DeleteParameters> |
<UpdateParameters> |
<asp:Parameter Name="Username" Type="String" /> |
<asp:Parameter Name="JobID" Type="Int32" /> |
<asp:Parameter Name="original_id" Type="Int32" /> |
<asp:Parameter Name="original_Username" Type="String" /> |
<asp:Parameter Name="original_JobID" Type="Int32" /> |
</UpdateParameters> |
<InsertParameters> |
<asp:Parameter Name="Username" Type="String" /> |
<asp:Parameter Name="JobID" Type="Int32" /> |
</InsertParameters> |
</asp:SqlDataSource> |
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> |
<AjaxSettings> |
<telerik:AjaxSetting AjaxControlID="RadGrid1"> |
<UpdatedControls> |
<telerik:AjaxUpdatedControl ControlID="RadGrid2" /> |
<telerik:AjaxUpdatedControl ControlID="RadWindowManager1" /> |
</UpdatedControls> |
</telerik:AjaxSetting> |
</AjaxSettings> |
</telerik:RadAjaxManager> |
</asp:Content> |
Imports Telerik.Web.UI |
Imports System.Configuration |
Imports System.Data.SqlClient |
Imports System.Data |
Imports ProfileCommon |
Partial Class jobs_view |
Inherits System.Web.UI.Page |
Protected Sub btnApply_Click(ByVal sender As Object, ByVal e As System.EventArgs) |
Dim rowCount As Integer = RadGrid2.MasterTableView.GetItems(New GridItemType() {GridItemType.Item, GridItemType.AlternatingItem}).Length |
If rowCount >= 5 Then |
RadAjaxManager1.ResponseScripts.Add("radalert('Sorry, you can only apply for five (5) jobs. Please remove a job from your list and try agian.', 330, 210);") |
Else |
'Configure SQL Connection |
Dim cn As SqlConnection = New SqlConnection |
Dim cmd As SqlCommand = New SqlCommand |
Dim connString As String = ConfigurationManager.ConnectionStrings("csSSEA").ConnectionString |
cn.ConnectionString = connString |
cmd.CommandText = "[usp_UserJobsInsert]" |
cmd.CommandType = System.Data.CommandType.StoredProcedure |
cmd.Connection = cn |
'Gets the name if authenticated. |
Dim CurrentUserName As String |
If User.Identity.IsAuthenticated Then |
CurrentUserName = User.Identity.Name |
Else |
CurrentUserName = "N/A" |
End If |
'Get Datagrid Values and declare as sql param |
Dim btn As Button = DirectCast(sender, Button) |
Dim dataItem As GridDataItem = DirectCast(btn.NamingContainer, GridDataItem) |
Dim strJobID As String = dataItem("JobID").Text |
Dim dataItemKeys As Telerik.Web.UI.GridDataItem = DirectCast(btn.NamingContainer, Telerik.Web.UI.GridDataItem) |
Dim JobID As String = dataItemKeys("JobId").Text |
cmd.Parameters.Add("@UserName", SqlDbType.VarChar).Value = CurrentUserName |
cmd.Parameters.Add("@JobID", SqlDbType.Int).Value = JobID |
Try |
If cn.State = ConnectionState.Closed Then |
cn.Open() |
End If |
cmd.ExecuteNonQuery() |
cn.Close() |
cn.Dispose() |
Catch ex As Exception |
End Try |
RadGrid2.Rebind() |
End If |
End Sub |
End Class |