2014-02-20 4 views
0

나는이 gridpanel 있습니다ext.net의 gridpanel에서 구성 요소 열의 항목 표시/숨기기 방법?

<ext:GridPanel ID="GridPanel1" runat="server" Width="300px" Height="200px" Header="false"> 
    <Store> 
     <ext:Store ID="Store1" runat="server"> 
      <Model> 
       <ext:Model ID="Model1" runat="server"> 
        <Fields> 
         <ext:ModelField Name="Name" Type="String" /> 
        </Fields> 
       </ext:Model>   
      </Model> 
     </ext:Store> 
    </Store> 
     <ColumnModel> 
      <Columns> 
       <ext:ComponentColumn ID="comColName" runat="server" Flex="1" Text="Name"> 
        <Component> 
         <ext:Container ID="container" runat="server" Layout="HBoxLayout"> 
          <Items> 
           <ext:TextField ID="txt1" runat="server" Flex="1"></ext:TextField> 
           <ext:Button ID="btn1" runat="server" Width="22px" Icon="Add">          
           </ext:Button> 
          </Items> 
         </ext:Container> 
        </Component> 
       </ext:ComponentColumn> 
      </Columns> 
     </ColumnModel> 
    </ext:GridPanel> 

그리고 뒤에있는 코드 것은 : 내가 뭘 원하는 것은 디스플레이가 시작시에만 텍스트 필드입니다 enter image description here

: 같은

protected void Page_Load(object sender, EventArgs e) 
     { 
      this.Store1.DataSource = new object[] { 
       new object[] {}, 
       new object[] {}, 
       new object[] {}, 
       new object[] {}, 
       new object[] {}, 
       new object[] {} 
      }; 

      this.Store1.DataBind(); 
     } 

스크린 샷이 보인다 , 텍스트 필드가 클릭되면 오른쪽에 추가 버튼을 표시하십시오. 그 때 다른 모든 버튼은 숨겨져 있어야합니다. 어떻게이 작업을 수행 할 수 있습니까? 클라이언트 쪽 스크립팅을 사용하여이 작업을 수행하고 싶습니다. 도와주세요. 열 셀을 편집하는 동안 다른 열을 숨기는 것도 효과가있을 수 있습니다. 고맙습니다.

+0

내 편에 코드에 아무것도 표시되지 않습니다. ??! – sakir

+0

more code please – sakir

+0

나는 store와 codebehind를위한 코드를 추가했다. – FREAKYHUNTER

답변

1

그런데

<%@ Page Language="C#" %> 

<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %> 

<script runat="server"> 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!X.IsAjaxRequest) 
     { 
      this.Store1.DataSource = new object[] 
      { 
       new object[] {}, 
       new object[] {}, 
       new object[] {} 
      }; 
     } 
    } 
</script> 

<!DOCTYPE html> 
<html> 
<head runat="server"> 
    <title>Ext.NET v2 Example</title> 
</head> 
<body> 
    <form runat="server"> 
     <ext:ResourceManager runat="server" /> 
     <ext:GridPanel 
      runat="server" 
      Width="300" 
      Height="200"> 
      <Store> 
       <ext:Store ID="Store1" runat="server"> 
        <Model> 
         <ext:Model runat="server"> 
          <Fields> 
           <ext:ModelField Name="Name" /> 
          </Fields> 
         </ext:Model> 
        </Model> 
       </ext:Store> 
      </Store> 
      <ColumnModel> 
       <Columns> 
        <ext:ComponentColumn runat="server" Flex="1" Text="Name"> 
         <Component> 
          <ext:Container runat="server" Layout="HBoxLayout"> 
           <Items> 
            <ext:TextField runat="server" Flex="1"> 
             <Listeners> 
              <Focus Handler="this.ownerCt.getComponent('AddButton').show();" /> 
              <Blur Handler="this.ownerCt.getComponent('AddButton').hide();" /> 
             </Listeners> 
            </ext:TextField> 

            <ext:Button 
             runat="server" 
             ItemID="AddButton" 
             Width="22" 
             Icon="Add" 
             Hidden="true" /> 
           </Items> 
          </ext:Container> 
         </Component> 
        </ext:ComponentColumn> 
       </Columns> 
      </ColumnModel> 
     </ext:GridPanel> 
    </form> 
</body> 
</html> 

예, 대신 사용할 수있는 텍스트 필드의 RightButtons 수집이있다. 다음은 example입니다.