2014-01-16 2 views
1

다음 코드를 사용 중입니다. .ASPX에 는 :RadGrid 열의 현재 값을 얻는 방법

.aspx.vb의
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> 

: 여기

#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 

제가 radgrid에 TemplateColumn에서의 텍스트 상자 chnge, 해당 값은 라벨 (GridTemplateColumn에 저장된 Radgrid의). 그건 자바 스크립트로 작성된 것입니다. 그러나 해당 융합 차트는 표시되지 않습니다. 내가 디버깅 할 때 새로운 값 (자바 스크립트로 계산)은 고려되지 않습니다. 그리드에 바인딩 된 값만 융합 차트에 플롯됩니다.

DrawGraph() 함수에서 이라는 수정 된 패턴 (GridTemplateColumn) 값을 <set label 값으로 사용했습니다. 그러나 새로운 가치는 오지 않을 것입니다. 예 : 프로젝트 투자 열에 600을 입력하면 해당 백분율 42는 수정 된 패턴 (GridTemplateColumn)에 들어갑니다. 그러나 융합 차트는 변경되지 않았습니다. 어떻게 문제를 해결할 수 있습니까?

사람이 저를 도와주세요 .........

+2

"제게 해결책을주십시오"는 질문을 끝내기에 좋은 방법이 아닙니다. 당신은 자신의 시도를 수행하고 먼저 무엇을했는지 알려줄 필요가 있습니다. –

+1

잘 모르겠지만 레이블 대신 텍스트 상자를 사용해 볼 수 있습니까? –

답변

4

내가 대신


레이블 텍스트 상자에 갈 당신을 제안하기 때문에 텍스트 상자에 서버 컨트롤과 레이블이 문제를 항상 받고 값을 가질 수 있습니다 업데이트 패널 등을 사용하는 경우 ..... 그래서 텍스트 상자를 사용하면 가장 좋은 옵션이됩니다.

관련 문제