2012-02-07 10 views
2

まず、私は英語が、病気の試行では本当によくないよJavaScriptをテキストボックスにラベルを変更すると、GridViewのを作成しましたので、私がやった可能すべての

としてそれを分かりやすくするために、前記カラム; テキストボックスは、ここにその逆

ありながら、ラベルとテキストボックス ラベルが 表示されるように設定されている2つのコントロールが私の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の内側にそう私はここに私のjavascript関数 に渡すことが私のサーバー側で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に何をしたかでありますトンアイブは、だから、コードが動作し、私は私のプログラムを実行し、ラベルをクリックしたとき、私はそれがほとんど行われていると思いますが、コントロール

function validate(txtobj, lblobj) { 

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

を呼び出すための関数を作成しました。 ラベルは隠れていますが、テキストボックスの下には<br/>の間にあります 私はコードをもう一度チェックしますが、以下のテキストボックスを作ることはできません。 サー/マダム問題は何だと思いますか、それともCSSを追加すべきですか? または私のコードは大きな問題ですか? 私はそれが悪いか良いことを提案しています。 ところで、私はjavascriptで本当に新しいです

あなたの時間と努力のために私の問題を読もうとしてくれてありがとう。

答えて

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

また、JavaScriptを使用せずに行うこともできます。 これを行うには、2つのパネルを使用する必要があります。 1つのパネルでラベルを保持し、他のパネルではテキストボックスを保持します。 visibleプロパティをfalseに設定して、パネルをテキストボックスで非表示にしておきます。 今ボタンのclickイベントでラベルのテキストを取得して文字列変数に格納し、labelを含むパネルのvisibleプロパティをfalseに変更します。次に、textboxを含むパネルでvisibleプロパティをtrueに変更し、変数に文字列を含むtextプロパティを設定します。

関連する問題