2014-01-16 2 views
1

Я использую следующий код. в .aspx:Как получить текущие значения столбцов RadGrid

function AccessOnclient() { 
    debugger; 
        var grid = $find("<%= dg_InvPat.ClientID %>"); 
        if (grid) { 
         var MasterTable = grid.get_masterTableView(); 
         var sumtemp = 0; 
         var Rows = MasterTable.get_dataItems(); 
         for (var i = 0; i < Rows.length; i++) { 
          var row = Rows[i]; 
                var RadNumericTextBox1 = row.findControl("txt_projInv"); 
          if (RadNumericTextBox1.get_value()) 
           { 
          sumtemp =sumtemp + RadNumericTextBox1.get_value(); 
           } 
           } 
          for (var i = 0; i < Rows.length; i++) { 
          var row = Rows[i]; 
                var RadNumericTextBox1 = row.findControl("txt_projInv"); 
          var valinv=RadNumericTextBox1.get_value(); 
          var res=Math.round((valinv/sumtemp)*100); 
          var revpat = MasterTable.get_dataItems()[i].findElement("lbl_revpat");//access the Label control 
          revpat.innerText = res; 
           } 

         document.getElementById("ctl00_MainContent_b1").click(); 



        } 


    } 
    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="Server"> 
     <div id="content"> 
      <table class="table_Style" width="100%"> 
       <tr> 
        <td style="width: 15%"> 
         <asp:Label ID="Label2" runat="server">Financial Year</asp:Label> 
        </td> 
        <td> 
         <Telerik:RadComboBox AutoPostBack="true" runat="server" ID="ddl_year" Width="200px" 
          MarkFirstMatch="true" CausesValidation="true" ValidationGroup="List"> 
         </Telerik:RadComboBox> 
         &nbsp;&nbsp;<asp:Button ID="cmd_go" runat="server" Text="View" CausesValidation="true" 
          ValidationGroup="btnSubmit"></asp:Button>&nbsp;&nbsp; 
         <asp:CompareValidator ID="cvyear" runat="server" ErrorMessage="Please Select Financial Year" 
          ControlToValidate="ddl_year" ValueToCompare="Select" Operator="NotEqual" ValidationGroup="btnSubmit"></asp:CompareValidator> 
        </td> 
       </tr> 
      </table> 
      <table class="table_Style" width="100%"> 
       <tr> 
        <td> 
         <Telerik:RadGrid ID="dg_InvPat" runat="server" AutoGenerateColumns="False" GridLines="None" 
          HeaderStyle-VerticalAlign="Top" Width="100%" ShowStatusBar="True" AllowPaging="True" 
          AllowSorting="false" AllowFilteringByColumn="False" PageSize="5"> 
          <GroupingSettings CaseSensitive="false" /> 
          <ExportSettings ExportOnlyData="true" OpenInNewWindow="True" IgnorePaging="true" 
           FileName="InvPattern"> 
          </ExportSettings> 
          <MasterTableView CommandItemDisplay="None" CommandItemSettings-ShowRefreshButton="false" 
           CommandItemSettings-ShowAddNewRecordButton="false"> 
           <RowIndicatorColumn> 
            <HeaderStyle Width="20px"></HeaderStyle> 
           </RowIndicatorColumn> 
           <ExpandCollapseColumn> 
            <HeaderStyle Width="20px"></HeaderStyle> 
           </ExpandCollapseColumn> 
           <NoRecordsTemplate> 
            <font color="red">No Records Available</font> 
           </NoRecordsTemplate> 
           <Columns> 
            <Telerik:GridBoundColumn UniqueName="NOTIF1" DataField="NOTIF1" HeaderText="As Per Notification" Visible ="false" > 
            </Telerik:GridBoundColumn> 
            <Telerik:GridBoundColumn UniqueName="NOTIF" DataField="NOTIF" HeaderText="As Per Notification"> 
            </Telerik:GridBoundColumn> 
            <Telerik:GridBoundColumn UniqueName="CAT" DataField="CAT" HeaderText="Pattern Category"> 
            </Telerik:GridBoundColumn> 
            <Telerik:GridBoundColumn UniqueName="INVESTMENT" DataField="INVESTMENT" HeaderText="Act Investment"> 
            </Telerik:GridBoundColumn> 
            <Telerik:GridBoundColumn UniqueName="LIMITID" DataField="LIMITID" HeaderText="Limit Id" 
             Visible="false"> 
            </Telerik:GridBoundColumn> 
            <Telerik:GridBoundColumn UniqueName="TRUSTPAT1" DataField="TRUSTPAT1" HeaderText="Trust Pattern" Visible="false"> 
            </Telerik:GridBoundColumn> 
            <Telerik:GridBoundColumn UniqueName="TRUSTPAT" DataField="TRUSTPAT" HeaderText="Trust Pattern"> 
            </Telerik:GridBoundColumn> 
            <Telerik:GridBoundColumn UniqueName="SHORTAGE" DataField="SHORTAGE" HeaderText="Shortfall/Excess"> 
            </Telerik:GridBoundColumn> 
            <Telerik:GridTemplateColumn HeaderText="Project Investment"> 
             <ItemTemplate> 
              <Telerik:RadNumericTextBox ID="txt_projInv" runat="server" EmptyMessage="" IncrementSettings-InterceptMouseWheel="false" 
                    SkinID="RadTextYellow" Type="Number" DataType="System.Int64" 
                    AutoPostBack="false" MaxLength="8" Text='<%# Bind("investment") %>'> 
                    <NumberFormat DecimalDigits="0" GroupSeparator="" /> 
                    <ClientEvents OnKeyPress="AccessOnclient" OnValueChanged="AccessOnclient"/> 
                   </Telerik:RadNumericTextBox> 
             </ItemTemplate> 
            </Telerik:GridTemplateColumn> 

            <Telerik:GridTemplateColumn HeaderText="Revised Pattern"> 
             <ItemTemplate> 
              <asp:Label ID="lbl_revpat" runat="server" Text='<%# Bind("trustpat1") %>'></asp:Label> 
             </ItemTemplate> 
            </Telerik:GridTemplateColumn> 
           </Columns> 
          </MasterTableView> 
         </Telerik:RadGrid> 
        </td> 
       </tr> 
       <tr id="tr1"> 
        <td colspan="2"> 
         <table width="100%" border="0" > 
          <tr> 
           <td align="center"> 
            <br/> 
            <div id="divgraph1" runat="server" > 
             <asp:Panel ID="pnlnum" runat="server" Width="100%" Visible="False" style="height:400px"> 
              <asp:Literal ID="Literal1" runat="server"></asp:Literal> 
             </asp:Panel> 
            </div> 
           </td> 
          </tr> 
         </table> 
        </td> 
       </tr> 
       <tr> 
        <td> 
         <asp:Label ID="lblhead" runat="server" Font-Size="10" ForeColor="#000033" 
          Font-Bold="True"></asp:Label> 
        </td> 
        <td align="right"> 
         <asp:Label ID="lbltotal" runat="server" Font-Size="10" ForeColor="#000033"></asp:Label> 
        </td> 
       </tr> 
       <tr> 
        <td colspan="2"> 
         <asp:Label Width="100%" ID="lblmess" SkinID="lblErr" runat="server"></asp:Label> 
        </td> 
       </tr> 
       <tr> 
       <td> 
       <asp:Button id="b1" runat="server" /> 
       </td> 
       </tr> 
       <tr> 
        <td colspan="2"> 
         <Telerik:RadFormDecorator ID="RadFormDecorator1" runat="server" DecoratedControls="Default" 
          Skin="Sunset" Style="margin-bottom: 0px" /> 
         <Telerik:RadWindowManager ID="RadWindowManager2" ShowContentDuringLoad="false" VisibleStatusbar="false" 
          ReloadOnShow="true" runat="server" Modal="true"> 
         </Telerik:RadWindowManager> 
        </td> 
       </tr> 
      </table> 
     </div> 
    </asp:Content> 

в .aspx.vb:

#Region "Namespaces" 
Imports Telerik.Web.UI 
Imports System.Data 
Imports System.Net 
Imports System 
Imports System.IO 
Imports System.Text 
Imports System.Net.Mail 
Imports InfoSoftGlobal.InfoSoftGlobal 
#End Region 

Partial Class iv 
    Inherits System.Web.UI.Page 

#Region "Declarations" 
    Dim objEntry_ml As ClsPF_BE 
    Dim objEntry_bll As ClsPF_BLL 
    Dim ds As DataSet 
    Dim objCom_ml As Common_ml 
    Dim objCom_bll As Common_bll 
    Dim UserSysId As Long 
    Public UnitID As Integer 
    Public UnitName As String 
    Dim strXML As String 
#End Region 

#Region "PageEvents" 

    Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init 
     AddHandler Master.PageEvent, AddressOf Page_Load 
    End Sub 

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
     If Master.UnitChange = True Then 
      Response.Redirect("iv.aspx") 
     End If 
     Master.PageHeadingTitle = "Pattern" 

     If Not Session("UserSysId") Is Nothing Then 
      UnitID = Session("UnitId") 
      UnitName = Session("UnitName") 
      UserSysId = Session("UserSysId") 

     Else 
      Response.Redirect("Login.aspx?Status=S") 
     End If 

     If Not IsPostBack Then 

      LoadYear() 

     End If 

     lblmess.Text = "" 

    End Sub 

    Protected Sub cmd_go_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmd_go.Click 
     LoadGrid() 
     Literal1.Text = DrawGraph() 
     pnlnum.Visible = True 
     divgraph1.Visible = True 
    End Sub 
    Private Sub LoadGrid() 
     Dim ds As New DataSet 

     Try 

      objEntry_ml = New ClsPF_BE 
      objEntry_bll = New ClsPF_BLL 
      Dim sReturnMessage As String = "" 
      objEntry_ml.FinYear_code = ddl_year.SelectedValue 
      ds = objEntry_bll.bll_Invpattern(objEntry_ml, UserSysId, sReturnMessage) 
      dg_InvPat.DataSource = ds 
      dg_InvPat.DataBind() 

      ds = Nothing 


      If dg_InvPat.Items.Count > 1 Then 

       lblmess.Visible = False 
       divgraph1.Visible = True 
      Else 

       lblmess.Text = "No records found for the year" & ddl_year.Text 
       lblmess.Visible = True 
      End If 


     Catch ex As Exception 

     End Try 

    End Sub 
    Sub LoadYear() 
     objEntry_ml = New ClsPF_BE 
     objEntry_bll = New ClsPF_BLL 
     ds = objEntry_bll.fillfinyear(objEntry_ml) 
     ddl_year.DataSource = ds 
     If ds.Tables(0).Rows.Count > 0 Then 
      ddl_year.DataValueField = ds.Tables(0).Columns(0).Caption 
      ddl_year.DataTextField = ds.Tables(0).Columns(1).Caption 
      ddl_year.DataBind() 
      If ddl_year.Items.Count > 0 Then 
       ddl_year.Items.Insert(0, New RadComboBoxItem("Select", "")) 
      End If 
     End If 
     objEntry_ml = Nothing 
     objEntry_bll = Nothing 
     ds = Nothing 
    End Sub 

#End Region 

#Region "Functions" 

    Public Function DrawGraph() As String 
     Try 
      Dim ds As DataSet 
      Dim dv As DataView 
      Dim dr As DataRowView 

      Dim sReturnMessage As String = "" 
      objEntry_ml = New ClsPF_BE 
      objEntry_bll = New ClsPF_BLL 


      strXML = "<chart palette='4' pieSliceDepth='30' pieRadius='120' CAPTION='Investment Pattern(In %)' bgcolor='#e5e5e5' outCnvBaseFont='verdana' outCnvBaseFontSize='11' showPercentageValues='1' bgAngle='360' showBorder='1' baseFont='Arial' baseFontSize='11' baseFontColor ='000000'>" 


      For Each item As GridDataItem In dg_InvPat.Items 
       Dim txt As Label = DirectCast(item.FindControl("lbl_revpat"), Label) 
       Dim aa As String = txt.Text 

       strXML = (strXML & ("<set label='" & (Server.HtmlEncode(item.Cells(4).Text) & ("' value='" & aa & "'/>")))) 
      Next 

      strXML = (strXML & "</chart>") 

      Return FusionCharts.RenderChartHTML("FusionCharts/Charts/Pie3D.swf", "", Server.UrlEncode(strXML.ToString), "Percentage", "500", "350", False) 

     Catch ex As Exception 

      divgraph1.Visible = False 
      lblmess.Text = "You have no rights to view this report" 
      lblmess.ForeColor = Drawing.Color.Red 
      lblhead.Text = "" 
      lbltotal.Text = "" 
     End Try 

    End Function 


#End Region 


    Protected Sub b1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles b1.Click 
     Literal1.Text = DrawGraph() 
     pnlnum.Visible = True 
     divgraph1.Visible = True 
    End Sub 

End Class 

Вот когда я chnge текстовое поле в TemplateColumn в radgrid, соответствующее значение сохраняется в этикетке (GridTemplateColumn из Radgrid). Это написано в javascript. Но соответствующая диаграмма слияния не показана. Когда я отлаживаю, новые значения (рассчитанные по javascript) не учитываются. В графике слияния будут отображаться только значения, которые связаны в сетке.

В DrawGraph функция() я использовал этикетку с именем, как Пересмотренном значение шаблона (GridTemplateColumn) в качестве <set label значения. Но новая ценность не наступает. Например. если я даю 600 в Project Investment column, соответствующий процент 42 идет в Исходный код (GridTemplateColumn). Но диаграмма слияния не изменяется. Как проблема может быть решена?

НИКОМУ ПОЖАЛУЙСТА ПОМОГИТЕ МНЕ .........

+2

«Пожалуйста, дайте мне решение», это не лучший способ задать вопрос. Вам нужно выполнить свои собственные попытки и сообщить нам, что вы сделали в первую очередь. –

+1

Я не уверен, но вы можете попробовать использовать текстовые поля вместо ярлыков? –

ответ

4

Я предлагаю вам пойти на текстовое поле вместо маркировать


Поскольку текстовое поле являются сервер управления и этикетки имеют проблемы всегда получать значения нравится, если вы используете панель обновления или так ..... поэтому текстовое поле будет наилучшим вариантом для использования

Смежные вопросы