Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 5 của 5
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Cần giúp về ContextMenu thông qua thư viện Telerik...

    Mình đang cần làm 1 cái Grid context menu.... làm xong rồi mà chạy nó cứ báo lỗi bên file cs line
    Mã:
    public partial class ContextMenu : System.Web.UI.Page
    đây là bài demo của mình có bạn hay anh chị nào biết xem giúp giải đáp hộ với...cảm ơn nhiều
    aspx
    Mã:
    <%@ Page Language="C#" AutoEventWireup="false" CodeFile="ContextMenu.aspx.cs" Inherits="Telerik.Web.Examples.Integration.ContextMN.ContextMenu" MasterPageFile="~/Site1.Master"%>
    <%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
        <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    <script runat="server">
        protected void RadG1_PreRender(object sender, EventArgs e)
        {
            if (RadG1.EditIndexes.Count > 0 || RadG1.MasterTableView.IsItemInserted)
            {
                GridColumn col1 = RadG1.MasterTableView.GetColumn("EditCommandColumn");
                col1.Visible = true;
            }
            else
            {
                GridColumn col2 = RadG1.MasterTableView.GetColumn("EditcommandColumn");
                col2.Visible = false; 
            }
            (RadG1.MasterTableView.AutoGeneratedColumns[0] as GridBoundColumn).ReadOnly = true;
            
        }
        protected void RadM1_ItemClick(object sender, RadMenuEventArgs e)
        {
            int radGridClickedRowIndex;
            radGridClickedRowIndex = Convert.ToInt32(Request.Form["radGridClickedRowIndex"]);
            switch (e.Item.Text)
            {
                case "Chỉnh Sửa":
                    RadG1.Items[radGridClickedRowIndex].Edit = true;
                    RadG1.Rebind();
                    break;
                case "Thêm Mới":
                    RadG1.MasterTableView.IsItemInserted = true;
                    RadG1.Rebind();
                case "Xóa Bỏ":
                    RadG1.MasterTableView.PerformDelete(RadG1.Items[radGridClickedRowIndex]);
                    break; 
            }
        }
        protected void RadG1_UpdateCommand(object sender, GridUpdatedEventArgs e)
        {
            GridTextColumnEditor gridTextColumnEditor_UnitMaker = (e.Item as GridDataItem).EditManager.GetColumnEditor("UnitMaker") as GridTextColumnEditor;
            GridTextColumnEditor gridTextColumnEditor_UnitPrice = (e.Item as GridDataItem).EditManager.GetColumnEditor("UnitPrice") as GridTextColumnEditor;
            if (gridTextColumnEditor_UnitPrice.Text == String.Empty)
            {
                e.Canceled = true;
                SetDefaultValues(gridTextColumnEditor_UnitPrice, "0");
            }
            if (gridTextColumnEditor_UnitMaker.Text == String.Empty)
            {
                e.Canceled = true; 
            }
            else if (gridTextColumnEditor_UnitPrice.Text.Split('.')[0].Length<=0||gridTextColumnEditor_UnitPrice.Text.Split('.')[]>3)
            {
                e.Canceled = true;
                SetDefaultValues(gridTextColumnEditor_UnitPrice,"0");
            }
        }
        private void SetDefaultValues(GridTextColumnEditor gridTextColumnEditor, string text)
        {
            gridTextColumnEditor.Text = text; 
        }
    </script>
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
        <telerik:RadCodeBlock runat="server" ID="RadCB1">
    <script type="text/javascript">
        function RowContextMenu(sender, eventArgs) {
            var menu = $find("<%=RadM1.ClientID %>");
            var evt = eventArgs.get_domEvent();
            if (evt.target.tagName == "INPUT" || evt.target.tagName == "A") {
                return;
            }
            var index = eventArgs.get_itemIndexHierarchical();
            document.getElementById("radGridClickedRowIndex").value = index;
    
            sender.get_masterTableView().selectItem(sender.get_masterTableView().get_dataItems()[index].get_element(), true);
            menu.show(evt);
            evt.cancelBubble = true;
            evt.returnValues = false;
            if (evt.stopPropagation) {
                evt.stopPropagation();
                evt.preventDefault();
            }
    
        }
    </script>
    </telerik:RadCodeBlock>
    <telerik:RadAjaxManager ID="Nothing" runat="server">
    <AjaxSettings>
    <telerik:AjaxSetting AjaxControlID="RadG1">
    <UpdatedControls>
    <telerik:AjaxUpdatedControl ControlID="RadG1" LoadingPanelID="RadALP1" />
    <telerik:AjaxUpdatedControl ControlID="RadM1" />
    </UpdatedControls>
    </telerik:AjaxSetting>
    <telerik:AjaxSetting AjaxControlID="RadM1">
    <UpdatedControls>
    <telerik:AjaxUpdatedControl ControlID="RadG1" LoadingPanelID="RadALP1" />
    <telerik:AjaxUpdatedControl ControlID="RadM1" />
    </UpdatedControls>
    </telerik:AjaxSetting>
    </AjaxSettings>
    </telerik:RadAjaxManager>
    <telerik:RadAjaxLoadingPanel ID="RadALP1" runat="server" Width="1197px">
    <input type="hidden" id="radGridClickedRowIndex" name="radGridClickeRowIndex" />
    <div style="margin-right:20px;">
    <telerik:RadGrid ID="RadG1" runat="server" Width="102%" DataSourceID="SqlDataSource1"
    AllowAutomaticDeletes="True" AllowAutomaticInserts="True" AllowAutomaticUpdates="True"
    OnPreRender="RadG1_PreRender" OnUpdateCommand="RadG1_UpdateCommand" 
            GridLines="None" onneeddatasource="RadG1_NeedDataSource">
    <MasterTableView AllowSorting="false" PageSize="10" AllowPaging="true" Width="100%"
    DataKeyNames="ID" DataSourceID="SqlDataSource1" EditMode="InPlace" 
            AutoGenerateColumns="False">
        <CommandItemSettings ExportToPdfText="Export to Pdf" />
        <Columns>
            <telerik:GridBoundColumn DataField="ID" DataType="System.Int32" HeaderText="Mã Sản Phẩm" 
                ReadOnly="True" SortExpression="ID" UniqueName="ID">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="Name" HeaderText="Tên Sản Phẩm" 
                SortExpression="Name" UniqueName="Name">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="Maker" HeaderText="Hãng Sản Xuất" 
                SortExpression="Maker" UniqueName="Maker">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="Price" DataType="System.Int32" 
                HeaderText="Giá Sản Phẩm" SortExpression="Price" UniqueName="Price">
            </telerik:GridBoundColumn>
        </Columns>
        <EditFormSettings>
            <EditColumn UniqueName="EditCommandColumn1">
            </EditColumn>
        </EditFormSettings>
    </MasterTableView>
    <ClientSettings>
    <ClientEvents OnRowContextMenu="RowContextMenu" />
    <Selecting AllowRowSelect="true" />
    </ClientSettings>
    <PagerStyle Mode="NextPrevAndNumeric" />
    
        <HeaderContextMenu CssGridContextMenu_Default" 
            EnableImageSprites="True">
        </HeaderContextMenu>
    
    </telerik:RadGrid>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:MAINConnectionString %>" 
            DeleteCommand="DELETE FROM [SANPHAM] WHERE [ID] = @ID" InsertCommand="INSERT INTO [SINHVIEN]([Name],[Maker],[Price])VALUES (@Name , @Maker, @Price)"
            SelectCommand="SELECT [ID], [Name], [Maker], [Price] FROM [SANPHAM]"
            UpdateCommand="UPDATE[SANPHAM] SET [Name]=@Name,[Maker]=@Maker,[Price]=@Price WHERE[ID]=@ID"
            >
            <DeleteParameters>
            <asp:Parameter Name="ID" Type="Int32" />
            </DeleteParameters>
            <InsertParameters>
            <asp:Parameter Name="Name" Type="String" />
            <asp:Parameter Name="Maker" Type="String" />
            <asp:Parameter Name="Price" Type="Decimal" />
            </InsertParameters>
            <UpdateParameters>
            <asp:Parameter Name="ID" Type="Int32" />
            <asp:Parameter Name="Name" Type="String" />
            <asp:Parameter Name="Maker" Type="String" />
            <asp:Parameter Name="Price" Type="Decimal" />
            </UpdateParameters>
        </asp:SqlDataSource>
        <telerik:RadContextMenu ID="RadM1" runat="server" OnItemClick="RadM1_ItemClick"
        EnableRoundedCorners="true" EnableShadows="true">
        <Items>
        <telerik:RadMenuItem Text="Thêm Mới">
        </telerik:RadMenuItem>
        <telerik:RadMenuItem Text="Chỉnh Sửa">
        </telerik:RadMenuItem>
        <telerik:RadMenuItem Text="Xóa Bỏ">
        </telerik:RadMenuItem>
        </Items>
        </telerik:RadContextMenu>
    </div>
    </telerik:RadAjaxLoadingPanel>
    </asp:Content>
    và đây là aspx.cs
    Mã:
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Telerik.Web.UI;
    using System.Collections.Specialized;
    
    namespace ContextMN
    {
        public partial class ContextMenu : System.Web.UI.Page
        {
            
           
        }
    }

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Thông báo lỗi là gì?

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Bản sửa bên tập tin ContextMenu.aspx:


    Mã:
    <%@ Page Language="C#" AutoEventWireup="false" CodeFile="ContextMenu.aspx.cs" Inherits="ContextMN.ContextMenu" MasterPageFile="~/Site1.Master"%>
    Không gian tên và lớp của bạn là ContextMN.ContextMenu.
    Không biết là do lúc tạo Telerik tự thêm vào hay là bạn sao chép theo nó vậy?

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Cái đó mình không sao chép theo nó... mà cũng ko phải lúc tạo nó có...Lỗi ở đây
    Mã:
    namespace Telerik.Web.Examples.Integration.ContextMN
    mình fix đc rồi nhưng h dính lỗi mới là The control with ID 'RadAM1' requires a ScriptManager on the page. The ScriptManager must appear before any controls that need it lên mạng đọc thì là do cái fw vs cái vs mà mình dùng bản 2010 với 4.0 thì có cũ đâu mà cứ dính lỗi trong khi nó chỉ yêu cầu cao hơn 2008 và fw 3.5 bực mình quá @@!

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Lỗi này @@!
    Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

    Compiler Error Message: ASPNET: Make sure that the class defined in this code file matches the 'inherits' attribute, and that it extends the correct base class (e.g. Page or UserControl).

    Source Error:


    Mã:
    Line 11: namespace ContextMN
    Line 12: {
    Line 13:     public partial class ContextMenu : System.Web.UI.Page
    Line 14:     {
    Line 15:

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •