Telerik Forums
UI for ASP.NET AJAX Forum
3 answers
267 views
Hi,

i use a Grid to Display a Datatable. I select the Data with an SQL-Statement. But how do i display the value from the inner join (second table)?

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;
        }
    }

How do is diaply "produkt " which is a field from table "kommentare"?

<telerik:GridBoundColumn AllowSorting="true" DataField="produkt" HeaderText="Produkt" SortExpression="Produkt" UniqueName="produkt"  />

will not work!

Thanks
best Regards
Rene
ITA
Top achievements
Rank 1
 answered on 19 May 2014
7 answers
543 views

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="&amp;nbsp;"

 HeaderText="Name" UniqueName="PersonName">

 <HeaderStyle Height="20px" />

 </telerik:GridBoundColumn>

 <telerik:GridBoundColumn DataField="Amount" EmptyDataText="&amp;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.

 

Kostadin
Telerik team
 answered on 19 May 2014
1 answer
128 views
Hi,

I am using below javascript function to add some text in RadEditor on click of a button.

function TestFunction()
{
      var editor = $find("<%= EditorID.ClientID %>");
      editor.pasteHtml("Test");
}

I want the text to be added at the current position of cursor in editor.In chrome and mozilla it is working fine. but for IE it is adding the text at the start of editor.
Does anyone know how to resolve this problem with IE?

Nikolay
Telerik team
 answered on 19 May 2014
1 answer
197 views
I have a situation where a user uploads a file and we put that into a session variable and an imageeditor.
 protected void AsyncUpload1_FileUploaded(object sender, FileUploadedEventArgs e)
        {
            //Clear changes and remove uploaded image from Cache
          ImageEditor_CreateDonor.ResetChanges();
        //   Context.Cache.Remove(Session.SessionID + "UploadedFile");
            using (Stream stream = e.File.InputStream)
            {
                byte[] imgData = new byte[stream.Length];
                stream.Read(imgData, 0, imgData.Length);
                MemoryStream ms = new MemoryStream();
                ms.Write(imgData, 0, imgData.Length);

                Context.Cache.Insert(Session.SessionID + "UploadedFile", ms, null, DateTime.Now.AddMinutes(20), TimeSpan.Zero);
            }
        }

Then we put it into a image editor.
 protected void ImageEditor_CreateDonor_ImageLoading(object sender, ImageEditorLoadingEventArgs args)
        {
           
            //Handle Uploaded images
            if (!Object.Equals(Context.Cache.Get(Session.SessionID + "UploadedFile"), null))
           {
                using (EditableImage image = new EditableImage((MemoryStream)Context.Cache.Get(Session.SessionID + "UploadedFile")))
                {
                    args.Image = image.Clone();
                    args.Cancel = true;
                }
           }
        }
We the image is cropped we save the crop into the session variable.
 protected void RadImgEdt_ImageChanging(object sender, ImageEditorEventArgs e)
        {
           
            Context.Cache.Remove(Session.SessionID + "UploadedFile");
            Context.Cache.Insert(Session.SessionID + "UploadedFile", e.Image, null, DateTime.Now.AddMinutes(20), TimeSpan.Zero);
        }

Now once we save, we want to save in the db which is a byte[] format, it doesn't save correctly. (I will the comments in to show the various things I have tried.
protected void BtnDonorSave_Click(object sender, EventArgs e)
        {
            Boolean isLandingPage = false;
            string rtxtScholarshipName = this.txtScholarshipName.Text;
            string rtxtScholarshipDesc = this.txtScholarshipDesc.Text;
            byte[] fileData;


            MemoryStream file;
            EditableImage eImage;
            try
            {
                //UploadedFile file = AsyncUpload1.UploadedFiles[0];
                //fileData = new byte[file.InputStream.Length];
                //file.InputStream.Read(fileData, 0, fileData.Length);
              
                 file =
                     (MemoryStream) Context.Cache.Get(Session.SessionID + "UploadedFile");
                
                
               // UploadedFile file = AsyncUpload1.UploadedFiles[0];
               // var file = Context.Cache[(Session.SessionID + "UploadedFile")] as  MemoryStream;
                 fileData = new byte[file.Length];
                 file.Read(fileData, 0, fileData.Length);
            }

            catch (ArgumentOutOfRangeException e1)
            {
                Response.Write("<script>alert('Donor cannot be added without an image');</script>");
               
                return;
            }
       

            Int32 rcollegeId = Convert.ToInt32(this.collegeId.SelectedValue);
            string rtxtNotes = this.txtNotes.Text;
            if (chkBxNotes.Checked == true)
                isLandingPage = true;


            db.CreateDonor(rcollegeId, rtxtScholarshipName, rtxtScholarshipDesc, ReadFully(Context.Cache.Get(Session.SessionID + "UploadedFile") as MemoryStream), rtxtNotes, User.Identity.Name, DateTime.Now, isLandingPage.ToString()).Execute();
            //Response.Write("<script>alert('Donor Created');</script>");
            Session["CollDiv"] = collegeId.SelectedValue;
            Response.Redirect("DonorProfiles.aspx");
        }

So after save when I try to view the image it is a bad image.

Anyone know how to save a cropped image into a database from an imageeditor?

Thanks





Vessy
Telerik team
 answered on 19 May 2014
5 answers
147 views
Hi all,
I used Splitter Control to develop my Project. I have a problem below:
1/ When the Text is very long=> the scrollbar is shown
2/ We click on the scrollbar and drag down=> 2 splitter is drag too

I want to fix the position of the splitter.

Please view some images in attached file.


Please help me to solve it

Thanks alot 
Vessy
Telerik team
 answered on 19 May 2014
1 answer
95 views
Hi,
I need to show the fields name in my fields window with an alias. Is it possible?
My pivotgrid is populated with an object like this:

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
         
    }
Mattia
Top achievements
Rank 2
 answered on 19 May 2014
10 answers
1.1K+ views
 

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!

Eyup
Telerik team
 answered on 19 May 2014
0 answers
76 views
I use telerik pie chart and I create it on server (from DB):

        private void cViolationsPerTime_NeedDataSource(object sender, EventArgs e)
        {
            Telerik.Reporting.Processing.Chart procChart = (Telerik.Reporting.Processing.Chart)sender;

            procChart.DataSource = BLL.BO.Audit.ExecuteAuditCommand(GenerateViolationsPerTimeSql(filters, "All"), type, conn, fromDate, toDate);

            Telerik.Reporting.Charting.ChartSeries csViolationsPerTime = new Telerik.Reporting.Charting.ChartSeries();
            csViolationsPerTime.DataYColumn = "NumOfViolations";
            csViolationsPerTime.Type = Telerik.Reporting.Charting.ChartSeriesType.Pie;
            csViolationsPerTime.DataLabelsColumn = "timeslot";

            csViolationsPerTime.Appearance.LegendDisplayMode = Telerik.Reporting.Charting.ChartSeriesLegendDisplayMode.ItemLabels;
            csViolationsPerTime.Appearance.ShowLabelConnectors = true;
            csViolationsPerTime.Appearance.TextAppearance.TextProperties.Font = new System.Drawing.Font("Calibri", 7F);

            cViolationsPerTime.Series.Clear();
            cViolationsPerTime.Series.Add(csViolationsPerTime);

        }


Attached screen shot with the result I get.
I want to get different legend then the data labels.
How can I bind a different column to the legend?

This is my SQL result:
timeslot     numOfViolations
10:00-12:00      40
12:00-14:00      10
14:00-16:00      8

etc...

I want each part of the pie to display the number of violations, and in legend I want to see the time slot.       


Covertix
Top achievements
Rank 1
 asked on 19 May 2014
3 answers
356 views
I have a rad splitter, inside that i have two RadPanes named as "rLeftPane" and "rContentPane".

In "rLeftPane" RadPane (ie. LEFT RadPane) I am loading an ASP.NET usercontrol which behaves as a menu, the usercontrol basically, is nothing but a RadWindow.

Now inside the "rContentPane" RadPane(ie. RIGHT RadPane) I am having another RadWindow named as "rwMain", which is used to load the aspx pages (combination of master page and content page), which is loaded in AJAX call and does not postback's the page.

Now what I want is, this, staying inside the "rContentPane" RadPane's (ie. RIGHT RadPane) RadWindow, at page loading, I want to access a control's present inside RadWindow which is in "rLeftPane" RadPane(ie. LEFT RadPane).

Here is the code :

<telerik:RadSplitter ID="Splitter" runat="server" Width="100%" Height="100%" VisibleDuringInit="false"
            Skin="Office2007" OnClientResizing="Resizing">

            <telerik:RadPane ID="rLeftPane" runat="server" Width="200" MinWidth="200" MaxWidth="200"
                OnClientCollapsed="WindowShow" OnClientExpanded="WindowShow" BackColor="DarkGray">

                <ERPx:LeftMainMenu ID="ucLeftMainMenu" runat="server" /> // This is my UserControl

            </telerik:RadPane>

            <telerik:RadSplitBar ID="VerticalSplitBar" runat="server" CollapseMode="Forward" EnableResize="false" />

            <telerik:RadPane ID="rContentPane" runat="server">

                <telerik:RadWindow ID="rwMain" runat="server" VisibleOnPageLoad="true" ShowContentDuringLoad="false"
                    OnClientShow="WindowShow" VisibleStatusbar="False" Behaviors="None" EnableShadow="false" OnClientBeforeClose="OnClientBeforeClose1" OnClientPageLoad="WindowLoad" IconUrl="images/18_users.gif" Skin="Office2007">
                </telerik:RadWindow>

            </telerik:RadPane>
        </telerik:RadSplitter>

Please help me out.

Thanks.
Vessy
Telerik team
 answered on 19 May 2014
3 answers
154 views
Hi All,

I'm using telerik 2013 Q3 for development. Now I want to implement a page that contains a radgrid, and the radgrid can expand to expand a DetailTables. The DetailTables has just one column GridTemplateColumn and in its ItemTemplate contains a RadTreeList.
My question is after click expand button, I cannot get RadTreeList instance whatever from dataBound, ItemCreated or anyother events. So how can I set datasource to the RadTreeList in DetailTables ItemTemplate.

Can anyone help on this, please? Thanks.
Eyup
Telerik team
 answered on 19 May 2014
Narrow your results
Selected tags
Tags
+? more
Top users last month
Shiori
Top achievements
Rank 2
Iron
Tien
Top achievements
Rank 1
Iron
Robert
Top achievements
Rank 1
Rob
Top achievements
Rank 4
Bronze
Bronze
Iron
Geoff
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Top users last month
Shiori
Top achievements
Rank 2
Iron
Tien
Top achievements
Rank 1
Iron
Robert
Top achievements
Rank 1
Rob
Top achievements
Rank 4
Bronze
Bronze
Iron
Geoff
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?