protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(!IsPostBack)
{
lblURL.Style.Add(
"display"
,
"none"
);
txtURL.Style.Add(
"display"
,
"none"
);
lblUpload.Style.Add(
"display"
,
"none"
);
uplAttachment.Style.Add(
"display"
,
"none"
);
lblFileName.Style.Add(
"display"
,
"none"
);
lblFileNameValue.Style.Add(
"display"
,
"none"
);
optAttachment.Checked =
false
;
optURL.Checked =
false
;
optNone.Checked =
true
;
taskID = Request.QueryString[
"taskID"
].ToString();
txtTaskID.Text = taskID;
}
}
<
tr
>
<
td
class
=
"templateLabel"
>
runat
=
"server"
Text
=
"Link:"
></
asp:Label
>
<
asp:Label
ID
=
"lblFileName"
ToolTip
=
"File Name of last upload"
runat
=
"server"
Text
=
"File Name:"
></
asp:Label
>
</
td
>
<
td
class
=
"templateValue"
>
<
telerik:RadTextBox
ID
=
"txtURL"
MaxLength
=
"300"
runat
=
"server"
EmptyMessage
=
"Specify a link (must start with http:// or https://)"
Width
=
"450px"
Enabled='<%# (Boolean)Session["EditProcess"] %>'>
</
telerik:RadTextBox
>
<
asp:Label
ID
=
"lblFileNameValue"
Text
=
"File Name goes here"
ToolTip
=
"File Name of last upload"
runat
=
"server"
></
asp:Label
>
</
td
>
</
tr
>
<
tr
>
<
td
class
=
"templateLabel"
>
<
asp:Label
ID
=
"lblAttachmentType"
runat
=
"server"
Text
=
"Reference:"
></
asp:Label
>
</
td
>
<
td
class
=
"templateValue"
>
<
telerik:RadButton
runat
=
"server"
AutoPostBack
=
"False"
Enabled='<%# (Boolean)Session["EditProcess"] %>' ID="optAttachment" ButtonType="ToggleButton" ToggleType="Radio" GroupName="urlOrAtt" Text="File" Value="attachment" OnClientCheckedChanged="optAttachment_CheckedChanged"></
telerik:RadButton
>
<
telerik:RadButton
runat
=
"server"
AutoPostBack
=
"False"
Enabled='<%# (Boolean)Session["EditProcess"] %>' ID="optURL" ButtonType="ToggleButton" ToggleType="Radio" GroupName="urlOrAtt" Text="Link" Value="url" OnClientCheckedChanged="optUrL_CheckedChanged"></
telerik:RadButton
>
<
telerik:RadButton
runat
=
"server"
AutoPostBack
=
"False"
Enabled='<%# (Boolean)Session["EditProcess"] %>' ID="optNone" ButtonType="ToggleButton" ToggleType="Radio" GroupName="urlOrAtt" Text="None" Value="none" OnClientCheckedChanged="optNone_CheckedChanged"></
telerik:RadButton
>
</
td
>
</
tr
>
function
optUrL_CheckedChanged(sender, eventArgs) {
if
(!g_rowSelected) {
if
(sender.get_checked()) {
alert(
'Link selected'
);
//var txtURL = $find("<%=txtURL.ClientID%>");
//txtURL.clear();
//txtURL.set_visible(true);
document.getElementById(
'<%= txtURL.ClientID %>'
).style.display =
'block'
;
document.getElementById(
'<%= lblURL.ClientID %>'
).style.display =
'block'
;
$find(
"<%=uplAttachment.ClientID%>"
).set_visible(
false
);
document.getElementById(
'<%= lblUpload.ClientID %>'
).style.display =
'none'
;
document.getElementById(
'<%= lblFileName.ClientID %>'
).style.display =
'none'
;
document.getElementById(
'<%= lblFileNameValue.ClientID %>'
).style.display =
'none'
;
}
EnableSave();
}
}
function
optAttachment_CheckedChanged(sender, eventArgs) {
if
(!g_rowSelected) {
if
(sender.get_checked()) {
alert(
'File selected'
);
var
txtURL = $find(
"<%=txtURL.ClientID%>"
);
txtURL.clear();
txtURL.set_visible(
false
);
document.getElementById(
'<%= lblURL.ClientID %>'
).style.display =
'none'
;
$find(
"<%=uplAttachment.ClientID%>"
).set_visible(
true
);
document.getElementById(
'<%= lblUpload.ClientID %>'
).style.display =
'block'
;
document.getElementById(
'<%= lblFileName.ClientID %>'
).style.display =
'block'
;
document.getElementById(
'<%= lblFileNameValue.ClientID %>'
).style.display =
'block'
;
}
EnableSave();
}
}
function
optNone_CheckedChanged(sender, eventArgs) {
if
(!g_rowSelected) {
if
(sender.get_checked()) {
alert(
'None selected'
);
var
txtURL = $find(
"<%=txtURL.ClientID%>"
);
txtURL.clear();
txtURL.set_visible(
false
);
document.getElementById(
'<%= lblURL.ClientID %>'
).style.display =
'none'
;
$find(
"<%=uplAttachment.ClientID%>"
).set_visible(
false
);
document.getElementById(
'<%= lblUpload.ClientID %>'
).style.display =
'none'
;
document.getElementById(
'<%= lblFileName.ClientID %>'
).style.display =
'none'
;
document.getElementById(
'<%= lblFileNameValue.ClientID %>'
).style.display =
'none'
;
}
EnableSave();
}
}
DataTable Kommentare
{
get
{
if
(Object.Equals(Session[
"Kommentare"
],
null
))
{
string
query =
"SELECT id, paketid, kommentar, bewertung, produkt FROM [kommentare] INNER JOIN [rating] ON kommentare.paketid = rating.id"
;
DataTable dt = GetDataTable(query);
Session[
"Kommentare"
] = dt;
}
return
(DataTable)Session[
"Kommentare"
];
}
set
{
Session[
"Kommentare"
] = value;
}
}
<telerik:GridBoundColumn AllowSorting=
"true"
DataField=
"produkt"
HeaderText=
"Produkt"
SortExpression=
"Produkt"
UniqueName=
"produkt"
/>
Hi
I’m using hierarchy RadGrid for my application, in which I’m using the master/parent table to show the total amount of the detail table row amounts. So when the user updates the amount in detail table, I have to update the total amount in the master table. But the master table doesn’t refresh automatically after the detail table is updated. When I try to rebind the grid after I update the detail table, it throws an exception saying “OrderDetailsID is neither a DataColumn nor a DataRelation for table Table.” I’m using ItemCommand method for updating detail table. Please help me to solve this problem.
Here is the Code:
protected void gridOrders_ItemCommand(object source, GridCommandEventArgs e)
{
lblStatus.Text = String.Empty;
int OrderID;
int OrderDetailsID;
String ItemName;
Double Amount;
switch (e.CommandName.ToUpper())
{
case "UPDATE":
if (e.Item.OwnerTableView.Name == "OrderDetails")
{
GridEditableItem editedItem = e.Item as GridEditableItem;
OrderDetailsID = int.Parse(editedItem.OwnerTableView.DataKeyValues[editedItem.ItemIndex]["OrderDetailsID"].ToString());
OrderID = int.Parse(editedItem.OwnerTableView.DataKeyValues[editedItem.ItemIndex]["OrderID"].ToString());
ItemName = (editedItem[
"ItemName"].Controls[1] as RadTextBox).Text;
Amount = Double.Parse((editedItem["Amount"].Controls[1] as RadNumericTextBox).Text.ToString());
try
{
//Update Order Details
String cmdText = "UPDATE [OrderDetails] SET ItemName = '"+ ItemName +"', Amount = " + Amount + " WHERE OrderDetailsID = " + OrderDetailsID;
Database db = DatabaseFactory.CreateDatabase();
DbCommand dbCmd = db.GetSqlStringCommand(cmdText);
db.ExecuteNonQuery(dbCmd);
//Update Orders
UpdateOrders(OrderID);
gridOrders.MasterTableView.Rebind(); ---------------------------------------------->> This line causes the exception.
}
catch (Exception ex)
{
lblStatus.Text = ex.Message;
}
}
break;
}
}
protected void gridOrders_NeedDataSource1(object source, GridNeedDataSourceEventArgs e)
{
try
{
string cmdText = @"SELECT OrderID, PersonName, Amount FROM [Order]";
Database db = DatabaseFactory.CreateDatabase();
DbCommand dbCmd = db.GetSqlStringCommand(cmdText);
DataSet orderDataSet = db.ExecuteDataSet(dbCmd); gridOrders.DataSource = (DataTable)orderDataSet.Tables[0];
}
catch (Exception ex)
{
lblStatus.Text = ex.Message;
}
}
protected void gridOrders_DetailTableDataBind(object source, GridDetailTableDataBindEventArgs e)
{
GridDataItem dataItem = (GridDataItem)e.DetailTableView.ParentItem;
string OrderID = dataItem.GetDataKeyValue("OrderID").ToString();
if (e.DetailTableView.Name == "OrderDetails")
{
try
{
string cmdText = @"SELECT * FROM OrderDetails WHERE OrderID = " + OrderID;
Database db = DatabaseFactory.CreateDatabase();
DbCommand dbCmd = db.GetSqlStringCommand(cmdText);
DataSet detailDataSet = db.ExecuteDataSet(dbCmd);
e.DetailTableView.DataSource = (DataTable)detailDataSet.Tables[0];
}
catch (Exception ex)
{
lblStatus.Text = ex.Message;
}
}
}
<telerik:RadGrid ID="gridOrders" runat="server" AutoGenerateColumns="False" GridLines="None"
Width="600px" onitemcommand="gridOrders_ItemCommand" onneeddatasource="gridOrders_NeedDataSource1" ShowFooter="true"
ondetailtabledatabind="gridOrders_DetailTableDataBind" >
<MasterTableView DataKeyNames="OrderID" Width="100%" Name="Orders">
<DetailTables>
<telerik:GridTableView DataKeyNames="OrderDetailsID,OrderID" Width="100%" runat="server"
Name="OrderDetails" CommandItemDisplay="Top">
<ParentTableRelation>
<telerik:GridRelationFields DetailKeyField="OrderID" MasterKeyField="OrderID" />
</ParentTableRelation>
<Columns>
<telerik:GridEditCommandColumn ButtonType="ImageButton">
</telerik:GridEditCommandColumn>
<telerik:GridTemplateColumn HeaderText="Item Name" UniqueName="ItemName">
<ItemTemplate>
<asp:Label ID="lblItemName" runat="server" Text='<%# Eval("ItemName") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<telerik:RadTextBox ID="tbItemName" runat="server" Text='<%# Bind("ItemName") %>'
Width="135px" >
</telerik:RadTextBox>
<span style="color: Red">*</span>
<asp:RequiredFieldValidator ID="rfvItemName" runat="server"
ControlToValidate="tbItemName" ErrorMessage="Item Name is required!">
</asp:RequiredFieldValidator>
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="Amount" UniqueName="Amount" >
<ItemTemplate>
<asp:Label ID="lblAmount" runat="server" Text='<%# Eval("Amount", "{0:C}") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<br />
<telerik:RadNumericTextBox ID="tbAmount" Runat="server" Text='<%# Bind("Amount") %>'
MinValue="0" Width="135px" NumberFormat-AllowRounding="True" NumberFormat-DecimalDigits="2">
</telerik:RadNumericTextBox>
<span style="color: Red">*</span>
<asp:RequiredFieldValidator ID="rfvAmount" runat="server"
ControlToValidate="tbAmount" ErrorMessage="Amount is required!">
</asp:RequiredFieldValidator>
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridButtonColumn CommandName="Delete" Text="Delete" ButtonType="ImageButton"
ConfirmText="Are you sure you want to delete this record?" ConfirmTitle="Confirm Delete" UniqueName="column">
</telerik:GridButtonColumn>
</Columns>
</telerik:GridTableView>
</DetailTables>
<Columns>
<telerik:GridBoundColumn DataField="PersonName" EmptyDataText="&nbsp;"
HeaderText="Name" UniqueName="PersonName">
<HeaderStyle Height="20px" />
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Amount" EmptyDataText="&nbsp;" DataFormatString="{0:C}" Aggregate="Sum"
HeaderText="Amount" UniqueName="Amount">
<HeaderStyle Height="20px" />
</telerik:GridBoundColumn>
</Columns>
</MasterTableView>
<HeaderStyle HorizontalAlign="Center" />
<FilterMenu EnableTheming="True">
<CollapseAnimation Duration="200" Type="OutQuint" />
</FilterMenu>
</telerik:RadGrid>
Thanks,
Sentha.
public
class
ReportModelObject
{
private
string
m_CompanyCode;
private
string
m_CompanyDescription;
private
string
m_CountryCode;
private
string
m_CountryDescription;
private
string
m_SiteCode;
private
string
m_SiteDescription;
public
ReportModelObject()
{
}
public
string
CompanyCode
{
get
{
return
m_CompanyCode; }
set
{ m_CompanyCode = value; NotifyPropertyChanged(
"CompanyCode"
); }
}
public
string
CompanyDescription
{
get
{
return
m_CompanyDescription; }
set
{ m_CompanyDescription = value; NotifyPropertyChanged(
"CompanyDescription"
); }
}
public
string
CountryCode
{
get
{
return
m_CountryCode; }
set
{ m_CountryCode = value; NotifyPropertyChanged(
"CountryCode"
); }
}
public
string
CountryDescription
{
get
{
return
m_CountryDescription; }
set
{ m_CountryDescription = value; NotifyPropertyChanged(
"CountryDescription"
); }
}
public
string
SiteCode
{
get
{
return
m_SiteCode; }
set
{ m_SiteCode = value; NotifyPropertyChanged(
"SiteCode"
); }
}
public
string
SiteDescription
{
get
{
return
m_SiteDescription; }
set
{ m_SiteDescription = value; NotifyPropertyChanged(
"SiteDescription"
); }
}
#region INotifyPropertyChanged Implementation
[field: NonSerialized]
public
event
PropertyChangedEventHandler PropertyChanged;
protected
void
NotifyPropertyChanged(
string
name)
{
if
(PropertyChanged !=
null
)
PropertyChanged(
this
,
new
System.ComponentModel.PropertyChangedEventArgs(name));
}
#endregion
}
How to get Radgrid dropdown list template column selected value in InsertCommand?
I used below, doesn't work. Also, how to make the text filter work for a dropdownlist column?
DropDownList dl;
dl = newItem[
"Language"].Controls[0] as DropDownList;
String SelectLanguageID = dl.SelectedValue;
----------------------------------------------------------------
<telerik:GridTemplateColumn HeaderText="Language" UniqueName="Language"
AutoPostBackOnFilter="true" CurrentFilterFunction="Contains"
ShowFilterIcon="false" FilterControlWidth="200px" >
<EditItemTemplate>
<asp:DropDownList ID="ddlLanguage" runat="server">
</asp:DropDownList>
</EditItemTemplate>
<FooterTemplate>
<asp:Label ID="lblLanguage" runat="server">
</asp:Label>
</FooterTemplate>
<ItemTemplate>
</ItemTemplate>
</telerik:GridTemplateColumn>
Thanks!