[CLOSED] Show/hide trigger in triggerField during a DirectEvent

  1. #1

    [CLOSED] Show/hide trigger in triggerField during a DirectEvent

    Hi, I'm trying to show and hide trigger in triggerField during a DirectEvent, but the trigger field does not render correctly.
    Where I'm wrong?

    I'm using Ext.Net 1.0.3859.28435

    Here is sample code:

    <%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Test.aspx.vb" Inherits="Test" %>
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">  
        <title>test</title>
      
      <script type="text/javascript" language="javascript">
            var doSomething = function(txt){alert('clicked: ' + txt);}
      </script>  
    </head>
    <body>
      <form id="form1" runat="server">
      
      <ext:ResourceManager ID="extSM" runat="server"></ext:ResourceManager>
      
        <ext:Viewport ID="vp" runat="server">
          <Content>
            <ext:FormPanel ID="pnl" runat="server" Width="600" Height = "400" Frame="true">
              <Content></Content> 
              <BottomBar>
                            <ext:Toolbar runat="server">
                                <Items>
                                    <ext:Button ID="btnShow" runat="server" Text="Show trigger">
                                        <DirectEvents><Click OnEvent="btnShow_Click"><EventMask ShowMask="true"/></Click></DirectEvents>
                                    </ext:Button>
                                    <ext:ToolbarSeparator runat="server"></ext:ToolbarSeparator>
                                    <ext:Button ID="btnHide" runat="server" Text="Hide trigger">
                                        <DirectEvents><Click OnEvent="btnHide_Click"><EventMask ShowMask="true"/></Click></DirectEvents>
                                    </ext:Button>
                                </Items>
                            </ext:Toolbar>
              </BottomBar>
            </ext:FormPanel>   
          </Content>
        </ext:Viewport>
        
      </form>
    </body>
    </html>
    Test.aspx.vb

    Partial Public Class Test : Inherits System.Web.UI.Page
    
        Private Sub Test_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            loadFields()
        End Sub
    
        'Loads all fields
        Protected Sub loadFields()
            For i = 0 To 10
                loadField(pnl, i, False)
            Next
        End Sub
    
        'Loads each CompositeField.
        Protected Sub loadField(ByRef parent As Ext.Net.FormPanel, _
                                            ByRef id As Int32, _
                                             ByRef triggerVisible As String)
            Try
                Dim campo As New CompositeField() With {.id = "cmps_" & id,  .StyleSpec = "background-color:transparent"}
                buildField(campo, parent, triggerVisible)
            Catch exc As Exception
                Throw
            End Try
        End Sub
    
        'Builds each CompositeField content.
        Public Sub buildField(ByRef cmps As CompositeField, _
                                       ByRef parent As FormPanel, _
                                       ByRef triggerVisible As Boolean)
    
        Try
    
            Dim txt1 As New TriggerField() With {.Width = 205, .ID = cmps.ID & "_txt1"}
    
            Dim cmbOp As New ComboBox() With {.Width = 50, .ID = cmps.ID & "_cmbOp", .Editable = False, .AllowBlank = False}
    
            cmbOp.Items.Add(New ListItem("<>", "<>"))
            cmbOp.Items.Add(New ListItem("=", "="))
            cmbOp.SelectedItem.Value = "="
    
            parent.Items.Add(cmps)
            cmps.Items.Add(cmbOp)
            cmps.Items.Add(txt1)
    
            txt1.Triggers.Add(New FieldTrigger() With {.Icon = TriggerIcon.SimpleDatabase})
            txt1.Listeners.TriggerClick.Handler = "doSomething('" & txt1.ClientID & "');"
            txt1.HideTrigger = triggerVisible
    
    Catch exc As Exception
        Throw
    End Try
    
        End Sub
    
    
        Protected Sub btnShow_Click(ByVal sender As Object, ByVal e As DirectEventArgs)
            For Each c As Control In pnl.Controls
                If TypeOf (c) Is CompositeField Then
                    Dim txt As TriggerField = c.FindControl(c.ID & "_txt1")
                    txt.HideTrigger = False
                End If
            Next
        End Sub
    
    
        Protected Sub btnHide_Click(ByVal sender As Object, ByVal e As DirectEventArgs)
            For Each c As Control In pnl.Controls
                If TypeOf (c) Is CompositeField Then
                    Dim txt As TriggerField = c.FindControl(c.ID & "_txt1")
                    txt.HideTrigger = True
                End If
            Next
        End Sub
    
    End Class
    Last edited by Daniil; Apr 26, 2011 at 7:37 AM. Reason: [CLOSED]
  2. #2
    Hi,

    To show initially hidden trigger, please use the .ShowTrigger() method.

    Example C#
    TriggerField t = FindControl("TriggerField1") as TriggerField;
    t.ShowTrigger(0);
  3. #3
    It didn't solve the incorrect rendering, the triggerfield still apears truncated; could be a problem about the CompositeField?
    In my code, every triggerfield is rendered to a CompositeField.

    Many thanks.

    Quote Originally Posted by Daniil View Post
    Hi,

    To show initially hidden trigger, please use the .ShowTrigger() method.

    Example C#
    TriggerField t = FindControl("TriggerField1") as TriggerField;
    t.ShowTrigger(0);
  4. #4
    Do you want to adjust field's width when a trigger is hidden? In other words - have the same with at both states - hidden and visible?
  5. #5
    When hide a Trigger during a DirectEvent, the TriggerField is truncated on the right side, like you can see in the attached image, or trying executing the sample code.

    I'd like the triggerfield, when the trigger is hidden, would be like a TextField without been truncted on the right side.
    Attached Thumbnails Click image for larger version. 

Name:	attach.png 
Views:	232 
Size:	6.9 KB 
ID:	2621  
  6. #6
    Please use:

    To hide (C#)
    TriggerField1.RemoveClass("clear-right");
    TriggerField1.ConcealTrigger(0);
    To show (C#)
    TriggerField1.AddClass("clear-right");
    TriggerField1.ShowTrigger(0);
  7. #7
    That worked like a charm.

    Mark as CLOSED.

    Many many tahanks.


    Quote Originally Posted by Daniil View Post
    Please use:

    To hide (C#)
    TriggerField1.RemoveClass("clear-right");
    TriggerField1.ConcealTrigger(0);
    To show (C#)
    TriggerField1.AddClass("clear-right");
    TriggerField1.ShowTrigger(0);

Similar Threads

  1. [CLOSED] Detect TriggerField trigger inside directEvent
    By Pablo_Azevedo in forum 1.x Legacy Premium Help
    Replies: 1
    Last Post: Jul 02, 2012, 10:37 PM
  2. [CLOSED] DateField - Hide trigger and date picker no-show
    By thchuong in forum 1.x Legacy Premium Help
    Replies: 4
    Last Post: Dec 12, 2011, 2:02 PM
  3. Replies: 0
    Last Post: Mar 03, 2011, 1:08 PM
  4. [CLOSED] Show/hide GridPanel columns during DirectEvent
    By jmcantrell in forum 1.x Legacy Premium Help
    Replies: 1
    Last Post: Sep 20, 2010, 8:51 PM
  5. [CLOSED] [1.0] TriggerField default trigger
    By randy85253 in forum 1.x Legacy Premium Help
    Replies: 5
    Last Post: Feb 22, 2010, 6:06 AM

Tags for this Thread

Posting Permissions