<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UpdateProblem.aspx.cs" Inherits="CellLab.WebForms.UpdateProblem" %> <%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %> <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <telerik:RadWindowManager ID="RadWindowManagerUI" runat="server"> </telerik:RadWindowManager> <asp:Button runat="server" ID="hiddenTargetControlForModalPopup" style="display:none"/> <telerik:RadScriptManager ID="ScriptManager1" runat="server" EnableTheming="True"> </telerik:RadScriptManager> <p> <asp:Label ID="LabelMsg" runat="server" Text="Label" Visible="false"></asp:Label> </p> <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" /> <telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" LoadingPanelID="RadAjaxLoadingPanel1"> <fieldset> <legend>Sample(s) information</legend> <p> <label class="demoHeaders"><b>Kit Number:</b></label> <asp:Label ID="LabelKitNumber" CssClass="demoHeaders" runat="server"></asp:Label> </p> <p> <label for="<%# DropDownListStudy.ClientID %>">Study: </label> <asp:DropDownList ID="DropDownListStudy" runat="server" AutoPostBack="True" onselectedindexchanged="DropDownListStudy_SelectedIndexChanged"></asp:DropDownList> <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="Study is required." Text="Study is required." ControlToValidate="DropDownListStudy" CssClass="validate_error" InitialValue="-1"></asp:RequiredFieldValidator> </p> <p> <label>Disease: </label> <asp:Label ID="LabelDisease" CssClass="demoHeaders" runat="server"></asp:Label> </p> <p> <label for="<%# TextBoxSite.ClientID %>">Site: </label> <asp:TextBox ID="TextBoxSite" CssClass="sf" runat="server"></asp:TextBox> </p> <p> <label for="<%# TextBoxFamNo.ClientID %>">Family number: </label> <asp:TextBox ID="TextBoxFamNo" CssClass="sf" runat="server"></asp:TextBox> </p> <p> <label for="<%# TextBoxIndNo.ClientID %>">Individual number: </label> <asp:TextBox ID="TextBoxIndNo" CssClass="sf" runat="server"></asp:TextBox> </p> <p> <label for="<%# TextBoxIndNo.ClientID %>">Notes: </label> <asp:TextBox ID="TextBoxNotes" CssClass="lf" runat="server" TextMode="MultiLine"></asp:TextBox> </p> <p> <label>Samples:</label><asp:LinkButton ID="LinkButtonAddEditSample" runat="server" CssClass="button" onclick="LinkButtonAddEditSample_Click" CausesValidation="false"><span class="ui-icon ui-icon-circle-plus"></span>Add Sample...</asp:LinkButton> </p> <telerik:RadTreeList ID="RadTreeListSamples" runat="server" AllowSorting="True" AutoGenerateColumns="False" CssClass="fullwidth" DataKeyNames="SampleNumber" EditMode="InPlace" onitemdatabound="RadTreeListSamples_ItemDataBound1" onneeddatasource="RadTreeListSamples_NeedDataSource1" onupdatecommand="RadTreeListSamples_UpdateCommand1" PageSize="15" ParentDataKeyNames="ParentSample" Skin="WebBlue" onitemcommand="RadTreeListSamples_ItemCommand"> <AlternatingItemStyle CssClass="odd" /> <Columns> <telerik:TreeListBoundColumn DataField="DateReceived" UniqueName="DateReceived" HeaderText="Date Received" DataFormatString="{0:M/dd/yyyy}" HeaderStyle-Width="120"/> <telerik:TreeListBoundColumn DataField="DateCollected" UniqueName="DateCollected" HeaderText="Date Collected" DataFormatString="{0:M/dd/yyyy}" HeaderStyle-Width="100"/> <telerik:TreeListBoundColumn DataField="SampleNumber" UniqueName="SampleNumber" HeaderText="Sample Number" ReadOnly="true" /> <telerik:TreeListBoundColumn DataField="StatusId" UniqueName="StatusId" HeaderText="Status" HeaderStyle-Width="75" ReadOnly="true" /> <telerik:TreeListBoundColumn DataField="InitialAmount" UniqueName="InitialAmount" HeaderText="Initial Amount" HeaderStyle-Width="100"/> <telerik:TreeListBoundColumn DataField="UnitId" UniqueName="UnitId" HeaderText="Units" HeaderStyle-Width="50" ReadOnly="true" /> <telerik:TreeListBoundColumn DataField="TubeTypeId" UniqueName="TubeTypeId" HeaderText="Tube Type" HeaderStyle-Width="100" ReadOnly="true"/> <telerik:TreeListBoundColumn DataField="Notes" UniqueName="Notes" HeaderText="Notes" /> <telerik:TreeListBoundColumn DataField="ParentSample" UniqueName="ParentSample" HeaderText="Parent Sample" ReadOnly="true"/> <telerik:TreeListEditCommandColumn UniqueName="EditCommandColumn" ButtonType="LinkButton" ShowAddButton="false"/> <telerik:TreeListTemplateColumn UniqueName="Deletecol" ReadOnly="true"> <ItemTemplate> <asp:LinkButton ID="link1" Text="Delete" OnClientClick="if (!confirm('Are you sure?')) return false;" CommandName="Delete" runat="server" /> <asp:HiddenField ID="ParentSample" Value='<%# Eval("ParentSample")%>' runat="server" /> </ItemTemplate> </telerik:TreeListTemplateColumn> </Columns> <NoRecordsTemplate> <div class="message information"> <h2>No samples added yet.</h2> <p> </p> </div> </NoRecordsTemplate> </telerik:RadTreeList> </fieldset> </telerik:RadAjaxPanel> <ajaxToolkit:ModalPopupExtender ID="ModalPopupExtenderAddEditSample" runat="server" TargetControlID="hiddenTargetControlForModalPopup" PopupControlID="PanelSamples" BackgroundCssClass="modalBackground" DropShadow="true" > </ajaxToolkit:ModalPopupExtender> </form> </body> </html>
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace CellLab.WebForms { class DataTest { private DateTime dateReceived; public DateTime DateReceived { get { return dateReceived; } set { dateReceived = value; } } private DateTime dateCollected; public DateTime DateCollected { get { return dateCollected; } set { dateCollected = value; } } private string sampleNumber; public string SampleNumber { get { return sampleNumber; } set { sampleNumber = value; } } private string status; public string StatusId { get { return status; } set { status = value; } } private float initialAmount; public float InitialAmount { get { return initialAmount; } set { initialAmount = value; } } private string units; public string UnitId { get { return units; } set { units = value; } } private string tubeType; public string TubeTypeId { get { return tubeType; } set { tubeType = value; } } private string notes; public string Notes { get { return notes; } set { notes = value; } } private string parentSample; public string ParentSample { get { return parentSample; } set { parentSample = value; } } } public partial class UpdateProblem : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } private void BindData() { DataTest sample1 = new DataTest(); sample1.DateReceived = DateTime.Now; sample1.DateCollected = DateTime.Now; sample1.SampleNumber = "1"; sample1.StatusId = "NA"; sample1.InitialAmount = 9.0f; sample1.UnitId = "ml"; sample1.TubeTypeId = "ACD"; sample1.Notes = "Notes sample 1"; sample1.ParentSample = null; DataTest sample2 = new DataTest(); sample2.DateReceived = DateTime.Now.AddDays(1); sample2.DateCollected = DateTime.Now.AddDays(1); sample2.SampleNumber = "2"; sample2.StatusId = "AVAIL"; sample2.InitialAmount = 0.0f; sample2.UnitId = "ml"; sample1.TubeTypeId = "Cryovial"; sample2.Notes = "Notes sample 2"; sample2.ParentSample = "1"; List<DataTest> rows = new List<DataTest>(); rows.Add(sample1); rows.Add(sample2); RadTreeListSamples.DataSource = rows; } protected void DropDownListStudy_SelectedIndexChanged(object sender, EventArgs e) { } protected void LinkButtonAddEditSample_Click(object sender, EventArgs e) { } protected void RadTreeListSamples_ItemDataBound1(object sender, Telerik.Web.UI.TreeListItemDataBoundEventArgs e) { } protected void RadTreeListSamples_UpdateCommand1(object sender, Telerik.Web.UI.TreeListCommandEventArgs e) { RadWindowManagerUI.RadAlert("This is getting updated!", 330, 100, "DNA CellLab", null); } protected void RadTreeListSamples_NeedDataSource1(object sender, Telerik.Web.UI.TreeListNeedDataSourceEventArgs e) { BindData(); } protected void RadTreeListSamples_ItemCommand(object sender, Telerik.Web.UI.TreeListCommandEventArgs e) { } } }
ds = ProductBO.GetProductChainDetailsList(ddlCategory.SelectedValue, "", txtStyle.Text, ddlStyleActive.SelectedValue, CInt(ViewState("cp").ToString), CInt(SystemSettingsBO.GetSettings("PageSize")))
ds.Relations.Add("ProductRelation", ds.Tables(0).Columns("PKProductID"), ds.Tables(1).Columns("FKProductID"))
If Not ds.Tables(2) Is Nothing Then
If ds.Tables(2).Rows.Count > 0 Then
ds.Relations.Add("ProductRelation2", ds.Tables(1).Columns("PKProductID"), ds.Tables(2).Columns("FKProductID"))
End If
End If
'dgProduct.DisplayLayout.AllowUpdateDefault = AllowUpdate.Yes
dgProduct.DataSource = ds
dgProduct.DataBind()
<
telerik:RadGrid
ID
=
"dgProduct"
runat
=
"server"
AutoGenerateColumns
=
"false"
AutoGenerateHierarchy
=
"true"
GroupingEnabled
=
"true"
AllowMultiRowSelection
=
"true"
AllowAutomaticDeletes
=
"True"
AllowAutomaticInserts
=
"True"
AllowAutomaticUpdates
=
"True"
>
<
MasterTableView
EditMode
=
"InPlace"
>
<
Columns
>
<
telerik:GridEditCommandColumn
ButtonType
=
"ImageButton"
UniqueName
=
"EditCommandColumn1"
>
<
HeaderStyle
Width
=
"20px"
/>
<
ItemStyle
CssClass
=
"MyImageButton"
/>
</
telerik:GridEditCommandColumn
>
<
telerik:GridBoundColumn
DataField
=
"PKProductID"
HeaderText
=
"PKProductID"
Visible
=
"false"
/>
<
telerik:GridBoundColumn
DataField
=
"SourceID"
HeaderText
=
"Style #"
/>
<
telerik:GridBoundColumn
DataField
=
"Language1Title"
HeaderText
=
"Title"
/>
<
telerik:GridBoundColumn
DataField
=
"Language1SubTitle"
HeaderText
=
"Sub Title"
/>
<
telerik:GridDropDownColumn
HeaderText
=
"Clearance"
UniqueName
=
"StyleClearance"
DataSourceID
=
"SourceCheck"
ListTextField
=
"Text"
ListValueField
=
"Text"
SortExpression
=
"Text"
DataField
=
"ClearanceItem"
/>
<
telerik:GridDropDownColumn
HeaderText
=
"Active"
UniqueName
=
"StyleActive"
DataSourceID
=
"SourceCheck"
ListTextField
=
"Text"
ListValueField
=
"Text"
SortExpression
=
"Text"
DataField
=
"Active"
/>
<
telerik:GridBoundColumn
DataField
=
"Price"
HeaderText
=
"Price"
/>
<
telerik:GridBoundColumn
DataField
=
"SalePrice"
HeaderText
=
"Sale Price"
/>
<
telerik:GridButtonColumn
ConfirmText
=
"Delete this product?"
ButtonType
=
"ImageButton"
CommandName
=
"Delete"
Text
=
"Delete"
UniqueName
=
"DeleteColumn1"
>
<
HeaderStyle
Width
=
"20px"
/>
<
ItemStyle
HorizontalAlign
=
"Center"
CssClass
=
"MyImageButton"
/>
</
telerik:GridButtonColumn
>
</
Columns
>
<
DetailTables
>
<
telerik:GridTableView
DataMember
=
"Colors"
HierarchyLoadMode
=
"ServerOnDemand"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"FKProductid"
HeaderText
=
"FKProductid"
Visible
=
"false"
/>
<
telerik:GridBoundColumn
DataField
=
"Language1Title"
HeaderText
=
"Title"
ReadOnly
=
"true"
/>
<
telerik:GridBoundColumn
DataField
=
"PKGroupScaleItemID"
HeaderText
=
"Color Id"
ReadOnly
=
"true"
/>
<
telerik:GridTemplateColumn
UniqueName
=
"TemplateColumn"
>
<
ItemTemplate
>
sfsdadf
</
ItemTemplate
>
<
EditItemTemplate
>
<
asp:DropDownList
DataSourceID
=
"SourceColors"
DataTextField
=
"ScaleLanguage1Name"
DataValueField
=
"ScaleType"
ID
=
"ddlList"
runat
=
"server"
AutoPostBack
=
"true"
selectedValue='<%# Eval("ScaleLanguage1Name") %>'></
asp:DropDownList
>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridDropDownColumn
UniqueName
=
"ColorSourceID"
DataSourceID
=
"SourceColors"
HeaderText
=
"Colors"
DataField
=
"SourceID"
SortExpression
=
"ScaleLanguage1Name"
ListTextField
=
"ScaleLanguage1Name"
ListValueField
=
"ScaleType"
/>
<
telerik:GridDropDownColumn
HeaderText
=
"Active"
UniqueName
=
"ColorActive"
DataSourceID
=
"SourceCheck"
ListTextField
=
"Text"
ListValueField
=
"Text"
SortExpression
=
"Text"
DataField
=
"Active"
/>
</
Columns
>
<
DetailTables
>
<
telerik:GridTableView
DataMember
=
"Sizes"
HierarchyLoadMode
=
"ServerOnDemand"
Width
=
"300px"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"FKProductid"
HeaderText
=
"FKProductid"
Visible
=
"false"
/>
<
telerik:GridBoundColumn
DataField
=
"Language1Title"
HeaderText
=
"Title"
ReadOnly
=
"true"
/>
<
telerik:GridBoundColumn
DataField
=
"SourceID"
HeaderText
=
"Size ID"
ReadOnly
=
"true"
/>
<
telerik:GridDropDownColumn
UniqueName
=
"SizeSourceID"
DataSourceID
=
"SourceSizes"
HeaderText
=
"Sizes"
DataField
=
"SourceID"
SortExpression
=
"ScaleLanguage1Name"
ListTextField
=
"ScaleLanguage1Name"
ListValueField
=
"PKGroupScaleItemID"
/>
<
telerik:GridBoundColumn
DataField
=
"BackOrderDays"
HeaderText
=
"Back Order Days"
/>
<
telerik:GridBoundColumn
DataField
=
"SKU"
HeaderText
=
"SKU"
/>
<
telerik:GridBoundColumn
DataField
=
"QuantityAvailable"
HeaderText
=
"Quantity"
/>
<
telerik:GridDropDownColumn
HeaderText
=
"Active"
UniqueName
=
"SizeActive"
DataSourceID
=
"SourceCheck"
ListTextField
=
"Text"
ListValueField
=
"Text"
SortExpression
=
"Text"
DataField
=
"Active"
/>
</
Columns
>
</
telerik:GridTableView
>
</
DetailTables
>
</
telerik:GridTableView
>
</
DetailTables
>
<
EditFormSettings
>
<
EditColumn
Reorderable
=
"false"
Resizable
=
"false"
/>
</
EditFormSettings
>
</
MasterTableView
>
<
ClientSettings
>
<
ClientEvents
OnRowClick
=
"RowClick"
OnRowDblClick
=
"RowDblClick"
/>
</
ClientSettings
>
</
telerik:RadGrid
>
<div id="dFieldSelection" style="padding:5px;" runat="server">
<telerik:radlistbox runat="server" DataTextField="Name" DataValueField="FieldID" ID="radListBox_1" AllowDelete="True"
AllowReorder="True" AllowTransfer="True" AutoPostBackOnTransfer="true" AutoPostBackOnDelete="true" TransferToID="radListBox_2">
</telerik:radlistbox>
<telerik:radlistbox runat="server" ID="radListBox_2"
AutoPostBackOnTransfer="true" AutoPostBackOnDelete="true"
ondeleting="radListBox_2_Deleting"></telerik:radlistbox>
</div>
I programmtically place some mandatory fields into radListBox_2... my goal is to prevent a user from deleting these mandatory items from radListBox_2 (i.e. I have noticed that the radListBox_2_Deleting server side event get executed when the user presses the arrow button to transfer an item back to radListBox_1).
Inside of radListBox_2_Deleting server side event I simply do some code checks and if this is a mandtory item I set e.Cancel = true... hoping that that will cancel the deletion. However, this does not appear to work as I expected.
How can I prevent a user from moving 1 RadListBoxItem from radListBox_2 back into radListBox_1?
Thx in advance!!!
<
telerik:RadGrid
HeaderStyle-Wrap
=
"false"
ItemStyle-Wrap
=
"true"
ID
=
"gvCustomers"
runat
=
"server"
AutoGenerateColumns
=
"False"
GridLines
=
"None"
AllowSorting
=
"true"
OnNeedDataSource
=
"gvCustomers_NeedDataSource"
OnItemCommand
=
"gvCustomers_ItemCommand"
>
<
MasterTableView
DataKeyNames
=
"CustomerId"
>
<
CommandItemSettings
ExportToPdfText
=
"Export to Pdf"
></
CommandItemSettings
>
<
RowIndicatorColumn
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
RowIndicatorColumn
>
<
ExpandCollapseColumn
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
ExpandCollapseColumn
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"Title"
HeaderText
=
"Title"
UniqueName
=
"Title"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"FName"
HeaderText
=
"First Name"
UniqueName
=
"FName"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"LName"
HeaderText
=
"Last Name"
UniqueName
=
"LName"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"CompanyName"
HeaderText
=
"Company"
UniqueName
=
"CompanyName"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Address1"
HeaderText
=
"Address 1"
UniqueName
=
"Address1"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Town"
HeaderText
=
"Town"
UniqueName
=
"Town"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Postcode"
HeaderText
=
"Postcode"
UniqueName
=
"Postcode"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Telephone"
HeaderText
=
"Tel"
UniqueName
=
"Telephone"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Mobile"
HeaderText
=
"Mobile"
UniqueName
=
"Mobile"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Email"
HeaderText
=
"Email"
UniqueName
=
"Email"
>
</
telerik:GridBoundColumn
>
<
telerik:GridButtonColumn
Text
=
"Select"
CommandName
=
"Select"
ButtonType
=
"LinkButton"
UniqueName
=
"column"
>
</
telerik:GridButtonColumn
>
<
telerik:GridButtonColumn
Text
=
"Edit"
CommandName
=
"EditCustomer"
ButtonType
=
"LinkButton"
UniqueName
=
"EditCustomer"
>
</
telerik:GridButtonColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
protected
void
gvCustomers_ItemCommand(
object
sender, GridCommandEventArgs e)
{
if
(!IsPostBack)
{
var item = (GridDataItem) e.Item;
string
id = item.GetDataKeyValue(
"CustomerId"
).ToString();
if
((e.Item
is
GridDataItem) && (e.CommandName ==
"EditCustomer"
))
{
var destination =
string
.Format(
"CustomerEdit.aspx?CustomerId={0}"
, id);
Response.Redirect(destination);
}
if
((e.Item
is
GridDataItem) && (e.CommandName ==
"Select"
))
{
var destination =
string
.Format(
"CustomerDetail.aspx?CustomerId={0}"
, id);
Response.Redirect(destination);
}
}
}