or
<
table
>
<
tr
>
<
td
>
<
telerik:RadGrid
ID
=
"RadGrid_versions"
AllowSorting
=
"True"
PageSize
=
"100"
AllowPaging
=
"True"
runat
=
"server"
GridLines
=
"None"
Width
=
"900px"
Visible
=
"true"
ShowHeader
=
"true"
ondetailtabledatabind
=
"RadGrid_versions_DetailTableDataBind"
>
<
SelectedItemStyle
BackColor
=
"Fuchsia"
BorderColor
=
"Purple"
BorderStyle
=
"Dashed"
BorderWidth
=
"1px"
/>
<
MasterTableView
Width
=
"100%"
Summary
=
"RadGrid table"
ShowHeader
=
"false"
/>
<
MasterTableView
RetrieveAllDataFields
=
"true"
AutoGenerateColumns
=
"false"
DataKeyNames
=
"UpdateNumber1"
AllowMultiColumnSorting
=
"true"
>
<
DetailTables
>
<
telerik:GridTableView
DataKeyNames
=
"UpdateNumber"
Name
=
"RadGrid_PartsVersions"
Width
=
"100%"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"UpdateNumber"
HeaderText
=
"UpdateNumber"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"UnitOfIssue"
HeaderText
=
"UI"
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
telerik:GridTableView
>
</
DetailTables
>
<
Columns
>
<
telerik:GridTemplateColumn
ItemStyle-BackColor
=
"#E6E6E6"
>
<
ItemTemplate
>
<
table
>
<
tr
>
<
td
>
Update Date:
</
td
>
<
td
>
<
asp:Label
ID
=
"lblUpdateDate"
runat
=
"server"
Text='<%#Bind("UpdateDate") %>'></
asp:Label
>
</
td
>
<
td
>
Update Number:
</
td
>
<
td
>
<
asp:Label
ID
=
"lblUpdateNumber"
runat
=
"server"
Text='<%#Bind("UpdateNumber") %>'></
asp:Label
>
</
td
>
<
td
>
Severity:
</
td
>
<
td
>
<
asp:Label
ID
=
"Label1"
runat
=
"server"
Text='<%#Bind("Severity") %>'></
asp:Label
>
</
td
>
</
tr
>
<
tr
>
<
td
align
=
"left"
colspan
=
"30"
>
<
table
cellpadding
=
"0"
cellspacing
=
"0"
>
<
tr
>
<
td
>
</
td
>
</
tr
>
</
table
>
</
td
>
</
tr
>
</
table
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
MasterTableView
>
<
PagerStyle
Mode
=
"NextPrev"
/>
</
telerik:RadGrid
>
</
td
>
</
tr
>
</
table
>
</
td
>
</
tr
>
</
table
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
private void RadGrid_versions_Bind(List<
CisHeader
> HeaderList)
{
RadGrid RadGrid_versions = (RadGrid)RadGrid_DetailsView.MasterTableView.Items[0].FindControl("RadGrid_versions");
List<
CISVersion
> version = new List<
CISVersion
>();
foreach (CisHeader Header in HeaderList)
{
foreach (CISVersion Version in Header.Version)
{
version.Add(Version);
}
}
RadGrid_versions.DataSource = version;
}
protected void RadGrid_versions_DetailTableDataBind(object sender, GridDetailTableDataBindEventArgs e)
{
string x = "test";
}
<
telerik:RadGrid
ID
=
"RadG_Operators"
runat
=
"server"
AutoGenerateColumns
=
"False"
CssClass
=
"RadGridCompact"
DataSourceID
=
"SDS_Operators"
GridLines
=
"None"
Width
=
"100%"
style
=
"outline:none;border:0px;"
>
<
clientsettings
>
<
selecting
allowrowselect
=
"true"
/>
</
clientsettings
>
<
HeaderStyle
HorizontalAlign
=
"Center"
/>
<
MasterTableView
cssclass
=
"RadGridCompact"
datakeynames
=
"IdOperator"
DataSourceID
=
"SDS_Operators"
style
=
"outline:none;border:0px;"
>
<
Columns
>
<
telerik:GridTemplateColumn
DataField
=
"OpName"
HeaderText='<%$ Resources:WebRes, Operator_Text %>'>
<
ItemTemplate
>
<
asp:Label
ID
=
"Label1"
runat
=
"server"
Text='<%# Eval("OpName") %>)'></
asp:Label
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridBoundColumn
DataField
=
"OpName"
HeaderText='<%$ Resources:WebRes, Operator_Text %>'>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"OpRoleName"
HeaderText='<%$ Resources:WebRes, Role_Text %>'
SortExpression="OpRoleName" UniqueName="OpRoleName">
<
HeaderStyle
HorizontalAlign
=
"Center"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
>
<
ItemTemplate
>
<
asp:Label
ID
=
"Label2"
runat
=
"server"
Text='<%# Eval("OpName") %>)'></
asp:Label
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
<
asp:SqlDataSource
ID
=
"SDS_Operators"
runat
=
"server"
ConnectionString="<%$ ConnectionStrings:DBConn %>"
SelectCommand="SELECT Operators.IdOperator, Operators.OpSurname + ' ' + Operators.OpName As OpName, OperatorsRoles.OpRoleName
FROM Operators INNER JOIN
OperatorsRoles ON Operators.IdOpRole = OperatorsRoles.IdOpRole
WHERE (Operators.IdCompany = @IdCompany)">
<
SelectParameters
>
<
asp:QueryStringParameter
Name
=
"IdCompany"
QueryStringField
=
"IdCompany"
/>
</
SelectParameters
>
</
asp:SqlDataSource
>
disable:
function
()
{
var
e=
this
.get_tableElement();
if
(e!=
null
)
{
e.className=
"rcbDisabled"
;
}
this
.set_enabled(
false
);
this
.get_inputDomElement().disabled=
"disabled"
;
this
.disableEvents();
var
d=
this
.get_items().get_count();
for
(
var
c=0; c<d; c++)
{
this
._children.getItem(c).disable();
}
}
disable:
function
()
{
this
.set_enabled(
false
);
this
.get_element().className=
"rcbDisabled"
;
}
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %>
<
script
runat
=
"server"
>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
populateLevel1();
connectEvents();
}
}
protected void Page_PreRender(object sender, EventArgs e)
{
if (!IsPostBack)
{
initJavascript();
}
}
protected void btnRun_Click(object sender, EventArgs e)
{
}
private void populateLevel1()
{
ddLevel1.Items.Add(new RadComboBoxItem("", ""));
for (var i = 1; i <= 4; i++)
{
string name = String.Format("Item {0}", i);
string value = String.Format("{0}", i);
ddLevel1.Items.Add(new RadComboBoxItem(name, value));
}
ddLevel1.SelectedIndex = 0;
}
protected virtual void connectEvents()
{
ddLevel1.OnClientSelectedIndexChanged = "ddLevel1SelectedIndexChanged";
}
protected virtual void initJavascript()
{
string script = @"
Sys.UI.DomEvent.addHandler(window, 'load',
function()
{{
initJavascript('{0}');
}}
);";
script = String.Format(script, ddLevel2.ClientID);
ClientScript.RegisterStartupScript(this.GetType(), this.ClientID + "_initJavascript", script, true);
}
</
script
>
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
script
type
=
"text/javascript"
>
var ddLevel2 = null;
function initJavascript(ddLevel2ClientID)
{
var foo = $find(ddLevel2ClientID);
if (!foo)
{
window.setTimeout(function() { initJavascript(ddLevel2ClientID); }, 100);
return;
}
ddLevel2 = $find(ddLevel2ClientID);
}
function ddLevel1SelectedIndexChanged(sender, eventArgs)
{
var item = eventArgs.get_item();
var value = item.get_value();
ddLevel2.disable();
window.setTimeout(function() { getLevel2(value, ddLevel2); }, 1000);
}
function getLevel2(value, dd)
{
dd.trackChanges();
dd.clearSelection();
dd.clearItems();
if (value)
{
var items = dd.get_items();
var item = new Telerik.Web.UI.RadComboBoxItem();
item.set_text("");
item.set_value("");
items.add(item);
item.select();
items.add(item);
for (var i = 1; i <= 4; i++)
{
item = new Telerik.Web.UI.RadComboBoxItem();
item.set_text("Item " + value + "." + i);
item.set_value(value + "." + i);
items.add(item);
}
dd.commitChanges();
}
dd.enable();
}
</
script
>
<
title
>Testing RadComboBoxes</
title
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
asp:ScriptManager
ID
=
"scriptManager"
runat
=
"server"
></
asp:ScriptManager
>
<
asp:UpdatePanel
ID
=
"updatePanel"
runat
=
"server"
>
<
ContentTemplate
>
<
asp:Label
ID
=
"lblLevel1"
runat
=
"server"
>Level One:</
asp:Label
>
<
telerik:RadComboBox
ID
=
"ddLevel1"
runat
=
"server"
></
telerik:RadComboBox
>
<
br
/>
<
asp:Label
ID
=
"lblLevel2"
runat
=
"server"
>Level Two:</
asp:Label
>
<
telerik:RadComboBox
ID
=
"ddLevel2"
runat
=
"server"
></
telerik:RadComboBox
>
<
br
/>
<
asp:Button
ID
=
"btnRun"
runat
=
"server"
OnClick
=
"btnRun_Click"
Text
=
"Go!"
/>
</
ContentTemplate
>
</
asp:UpdatePanel
>
</
form
>
</
body
>
</
html
>
<
telerik:RadAjaxPanel
ID
=
"RadAjaxPanel1"
runat
=
"server"
>
<
telerik:RadGrid
ID
=
"grdFormList"
runat
=
"server"
CssClass
=
"RadGrid"
GridLines
=
"None"
AllowPaging
=
"false"
AllowSorting
=
"false"
AutoGenerateColumns
=
"False"
ShowStatusBar
=
"true"
Height
=
"100%"
Width
=
"100%"
OnNeedDataSource
=
"grdFormList_NeedDataSource"
OnDataBound
=
"grdFormList_DataBound"
>
<
MasterTableView
CommandItemDisplay
=
"None"
DataKeyNames
=
"ID"
>
<
NoRecordsTemplate
>
No forms to review
</
NoRecordsTemplate
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"ID"
HeaderText
=
"ID"
Visible
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Title"
HeaderText
=
"Incentive Plan Form"
HeaderStyle-HorizontalAlign
=
"Left"
ItemStyle-HorizontalAlign
=
"Left"
>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
DataField
=
"View"
HeaderText
=
"View"
HeaderStyle-HorizontalAlign
=
"Center"
ItemStyle-HorizontalAlign
=
"Center"
>
<
ItemTemplate
>
<
telerik:radbutton
id
=
"btnViewItem"
runat
=
"server"
text
=
""
style
=
"background:url(/_layouts/MirandaImages/msinfopath.png); width:20px; height:20px;"
>
<
Image
EnableImageButton
=
"true"
/>
</
telerik:radbutton
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridBoundColumn
DataField
=
"LastReviewDate"
HeaderText
=
"Last Review"
HeaderStyle-HorizontalAlign
=
"Center"
ItemStyle-HorizontalAlign
=
"Center"
>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
DataField
=
"Review"
HeaderText
=
"Review This Item"
HeaderStyle-HorizontalAlign
=
"Center"
ItemStyle-HorizontalAlign
=
"Center"
>
<
ItemTemplate
>
<
asp:CheckBox
id
=
"cbReview"
checked
=
"false"
runat
=
"server"
/>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
telerik:RadAjaxPanel
>
</
div
>
<
div
id
=
"divFooterButtons"
style
=
"text-align:right; width:800px; padding-top:5px;"
>
<
telerik:RadButton
ID
=
"btnSubmit"
runat
=
"server"
Text
=
"Done"
OnClick
=
"btnSubmit_Click"
/>
</
div
>
I could use some help/advice with creating a drop down button that posts back to the server when the contextmenu item is clicked. Here are two different approaches.
The first simple example does this, but it doesn't refresh nicely. When I click the contextmenu item, the menu begins to close back up and simultaneously the postback starts. So what the user sees is the menu half-way closed as the browser is busy working on the postback. It just doesn't look polished. I'd like for the page to be in some kind of stable looking state at the time the postback initiates.
<
telerik:RadButton
EnableSplitButton
=
"true"
ID
=
"SplitButton3"
AutoPostBack
=
"false"
runat
=
"server"
Text
=
"Leave"
OnClientClicked
=
"OnClientSplitButton3Clicked"
>
</
telerik:RadButton
>
<
div
style
=
"display: none;"
>
<
telerik:RadContextMenu
ID
=
"RadContextMenu3"
runat
=
"server"
EnableRoundedCorners
=
"false"
OnItemClick
=
"RadContextMenu3_Click"
>
<
Items
>
<
telerik:RadMenuItem
Text
=
"Leave by Land"
Value
=
"LAND"
>
</
telerik:RadMenuItem
>
<
telerik:RadMenuItem
Text
=
"Leave by Sea"
Value
=
"SEA"
>
</
telerik:RadMenuItem
>
</
Items
>
</
telerik:RadContextMenu
>
</
div
>
function OnClientSplitButton3Clicked(sender, args) {
var contextMenu = $find("<%=RadContextMenu3.ClientID%>");
var currentLocation = $telerik.getLocation(sender.get_element());
contextMenu.showAt(currentLocation.x, currentLocation.y + 28);
}
<
telerik:RadButton
EnableSplitButton
=
"true"
ID
=
"SplitButton1"
AutoPostBack
=
"false"
runat
=
"server"
Text
=
"Assign"
OnClientClicked
=
"OnClientSplitButton1Clicked"
EnableEmbeddedSkins
=
"false"
OnClick
=
"SplitButton1_Click"
>
</
telerik:RadButton
>
<
div
style
=
"display: none;"
>
<
telerik:RadContextMenu
ID
=
"RadContextMenu1"
runat
=
"server"
OnClientItemClicked
=
"OnClientContextMenu1Clicked"
>
<
Items
>
<
telerik:RadMenuItem
Text
=
"Assign and Return to List"
>
</
telerik:RadMenuItem
>
<
telerik:RadMenuItem
Text
=
"Assign and Continue"
>
</
telerik:RadMenuItem
>
</
Items
>
</
telerik:RadContextMenu
>
</
div
>
function OnClientContextMenu1Clicked(sender, args) {
// 2
var itemText = args.get_item().get_text();
var splitButton = $find("<%=SplitButton1.ClientID%>");
if (itemText == "Assign and Return to List") {
splitButton.set_commandName("AssignReturn");
}
else if (itemText == "Assign and Continue") {
splitButton.set_commandName("AssignContinue");
}
splitButton.set_text("Assigning...");
//allow context menu to finish hiding before doing postback
setTimeout('executeButtonClick()', 200);
}
function executeButtonClick() {
// 3
var splitButton = $find("<%=SplitButton1.ClientID%>");
splitButton.click();
}
function OnClientSplitButton1Clicked(sender, args) {
var contextMenu = $find("<%=RadContextMenu1.ClientID%>");
var btnText = sender.get_text();
if (btnText == "Assign") {
//text is still in initial state, so display the context menu.
// 1
var currentLocation = $telerik.getLocation(sender.get_element());
contextMenu.showAt(currentLocation.x, currentLocation.y + 28);
}
else {
// context menu has been clicked, so do a postback
// 4
sender.set_autoPostBack(true);
sender.set_enabled(false);
}
}
protected void SplitButton1_Click(object sender, EventArgs e)
{
lblMessage.Text = "Assign with this command: " + SplitButton1.CommandName + " " + DateTime.Now.ToLongTimeString();
}
<%@ Page Title=
""
Language=
"C#"
MasterPageFile=
"~/MasterPage/DownloadCenter.Master"
AutoEventWireup=
"true"
CodeBehind=
"Test.aspx.cs"
Inherits=
"DownloadCenter.GUI.Test"
%>
<%@ Register Assembly=
"Telerik.Web.UI"
Namespace=
"Telerik.Web.UI"
TagPrefix=
"telerik"
%>
<asp:Content ID=
"Content1"
ContentPlaceHolderID=
"contentPage"
runat=
"server"
>
<telerik:RadScriptManager ID=
"RadScriptManager1"
runat=
"server"
>
</telerik:RadScriptManager>
<telerik:RadComboBox ID=
"rd"
runat=
"server"
EnableLoadOnDemand=
"True"
DataTextField=
"Desc"
DataValueField=
"PayID"
OnItemsRequested=
"RadComboBox1_ItemsRequested"
AutoPostBack=
"True"
onselectedindexchanged=
"rd_SelectedIndexChanged"
>
</telerik:RadComboBox>
</asp:Content>
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
DownloadCenter.Entity;
using
Telerik.Web.UI;
namespace
DownloadCenter.GUI
{
public
partial
class
Test : System.Web.UI.Page
{
BO bo =
new
BO();
DB db =
new
DB();
User user;
protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(!Page.IsPostBack)
{
BindRD();
}
}
private
void
BindRD()
{
rd.DataSource = db.GetPayMethod_CB();
rd.DataBind();
}
protected
void
RadComboBox1_ItemsRequested(
object
sender, RadComboBoxItemsRequestedEventArgs e)
{
rd.DataSource = db.GetPayMethod_CB();
rd.DataBind();
}
protected
void
rd_SelectedIndexChanged(
object
sender, RadComboBoxSelectedIndexChangedEventArgs e)
{
string
tt = rd.SelectedValue.ToString();
Session[
"SupplierID"
] = e.Value;
}
}
<script language=
"javascript"
>
function
onBlur(comboBox) {
comboBox.OriginalText = comboBox.GetText();
}
</script>
<
telerik:RadCodeBlock
ID
=
"RadCodeBlock1"
runat
=
"server"
>
<
script
type
=
"text/javascript"
>
function OnClientSplitButton2Clicked(sender, args) {
if (args.IsSplitButtonClick()) {
var currentLocation = $telerik.getLocation(sender.get_element());
var contextMenu = $find("<%=RadContextMenu2.ClientID%>");
contextMenu.showAt(currentLocation.x, currentLocation.y + 22);
sender.set_autoPostBack(false);
}
else {
sender.set_autoPostBack(true);
//sender.set_enabled(false);
//sender.set_text("Saving...");
}
}
function OnClientContextMenu2Clicked(sender, args) {
var itemText = args.get_item().get_text();
var splitButton = $find("<%=SplitButton2.ClientID%>");
if (itemText == "Save and Return to List") {
splitButton.set_text("Save and Return to List");
splitButton.set_commandName("SaveReturn");
}
else if (itemText == "Save and Start Another") {
splitButton.set_text("Save and Start Another");
splitButton.set_commandName("SaveStartAnother");
}
}
</
script
>
</
telerik:RadCodeBlock
>
<
br
/>
<
br
/>
<
asp:Label
ID
=
"lblMessage"
runat
=
"server"
Text
=
""
Style
=
"font-size: 12pt; color: Red;"
></
asp:Label
>
<
br
/>
<
br
/>
<
telerik:RadButton
ID
=
"SplitButton2"
AutoPostBack
=
"false"
runat
=
"server"
Text
=
"Save and Return to List"
EnableSplitButton
=
"true"
Height
=
"22px"
Enabled
=
"true"
CommandName
=
"SaveReturn"
UseSubmitBehavior
=
"false"
OnClientClicked
=
"OnClientSplitButton2Clicked"
OnClick
=
"SplitButton2_Click"
>
</
telerik:RadButton
>
<
div
style
=
"display: none;"
>
<
telerik:RadContextMenu
ID
=
"RadContextMenu2"
runat
=
"server"
OnClientItemClicked
=
"OnClientContextMenu2Clicked"
EnableRoundedCorners
=
"true"
>
<
Items
>
<
telerik:RadMenuItem
Text
=
"Save and Return to List"
>
</
telerik:RadMenuItem
>
<
telerik:RadMenuItem
Text
=
"Save and Start Another"
>
</
telerik:RadMenuItem
>
</
Items
>
</
telerik:RadContextMenu
>
</
div
>
protected
void
SplitButton2_Click(
object
sender, EventArgs e)
{
lblMessage.Text =
"Save with this command: "
+ SplitButton2.CommandName +
" "
+ DateTime.Now.ToLongTimeString();
}