모든

2012-02-07 2 views
2

먼저 내가 영어하지만 아픈 시도에 정말 좋은 아니에요 자바 스크립트에서 텍스트 상자에 라벨을 변경하는 것은있는 gridview를 만들 수 있었다 그래서 내가 한 수모든

으로 이해할 수 있도록 상기 열; 두 개의 컨트롤 레이블과 텍스트 상자 레이블 텍스트 상자는 그 반대입니다 반대 여기

내있는 gridview의 클라이언트 코드가 내가 제어를 찾기 어렵 알고

<asp:Image ID="img" onclick="javascript:Toggle(this);" runat="server" ImageUrl="~/Images/minus.gif" 
            ToolTip="Collapse" Width="7px" Height="7px" ImageAlign="AbsMiddle" /></a> 
          <asp:Label ID="lbllastname" Height="15px" Width="180px" runat="server" Text='<%# Eval("CourseCatName")%>'></asp:Label> 
          <asp:TextBox ID="txtCourseCategory" AutoPostBack="true" runat="server" Text='<%# Eval("CourseCatName")%>' 
           Font-Size="XX-Small" Font-Names="Verdana" Style="display: none" OnTextChanged="txtCourseCategory_TextChanged" 
           Height="16px" Width="207px"></asp:TextBox><br /> 

동안 볼 수 있도록 설정 내가 한 그래서 무엇있는 gridview 내 서버 측에 atrribute을 만드는 것입니다 내부 여기에 내가 무슨 짓을했는지 내 자바 스크립트 함수 에 전달되는

Dim txttry As TextBox = DirectCast(e.Row.FindControl("txtCourseCategory"), TextBox) 
     Dim labeltry As Label = DirectCast(e.Row.FindControl("lbllastname"), Label) 
     labeltry.Attributes.Add("onclick", "javascript:return validate('" + txttry.ClientID + "','" + labeltry.ClientID + "')") 

그리고 내 javascrip에 t 필자는 컨트롤

function validate(txtobj, lblobj) { 

     document.getElementById(lblobj).style.display = 'none'; 
     document.getElementById(txtobj).style.display = 'block'; 
    } 

그래서 코드 작품과 나는 그게 거의 다 생각하지만, 호출하는 함수를 만들어 내 프로그램을 실행하고 라벨을 클릭 할 때; 라벨이 숨겨 지지만 그 사이에 <br/>처럼 텍스트 상자가 아래에 있습니다. 코드를 다시 확인했지만 아래 텍스트 상자를 만들 수있는 것은 없습니다. 선생님/부인 문제가 무엇이라고 생각하십니까, 아니면 CSS를 추가해야합니까? 아니면 내 코드가 큰 문제입니까? 나는 그것이 좋지 않거나 좋다고 제안을 위해 개방되어있다. 그건 그렇고 난 자바 스크립트에 정말 새로운

내 문제를 읽는 데 시간과 노력에 감사드립니다.

답변

3

다음 줄을 변경해보십시오 : 당신이이 블록 요소는 무엇 때문에 당신의 요소는 다음 줄에 표시됩니다 block 요소로 설정하면

document.getElementById(txtobj).style.display = ''; 

// OR 

document.getElementById(txtobj).style.display = 'inline'; 

:

document.getElementById(txtobj).style.display = 'block'; 

이 될 수를 . display 속성을 빈 문자열로 설정하면 입력 요소의 경우 inline이어야하는 특정 요소 유형에 대해 기본값 display 유형으로 설정하여 다시 표시해야합니다. 그래도 작동하지 않으면 명시 적으로 inline으로 설정할 수 있습니다.

display에 대한 자세한 내용은 여기를 참조하십시오. http://www.quirksmode.org/css/display.html - 페이지 하단에 그림이 있고 설정 변경 중의 데모가 있습니다.

+0

감사합니다. 당신은 천사입니다.^_^귀하의 설명에 감사드립니다. 지금은 잘 작동하고 있습니다. – Janwel

0

자바 스크립트를 사용하지 않고도이 작업을 수행 할 수 있습니다. 이렇게하려면 2 개의 패널을 사용해야합니다. 한 패널에서 레이블을 유지하고 다른 패널에서 텍스트 상자를 유지하십시오. 이제 visible 속성을 false로 설정하여 패널을 텍스트 상자에서 보이지 않게 유지합니다. 버튼 클릭 이벤트에서 label 텍스트를 가져 와서 문자열 변수에 저장하고 label이 들어있는 패널에 대해 visible 속성을 false로 변경합니다. textbox가 포함 된 패널의 visible 속성을 true로 변경하고 text 속성을 변수에 설정합니다.

관련 문제