2012-02-07 18 views
2

首先我不是英語,但生病嘗試真的好,使之理解的,因爲可能更改標籤,文本框所有的JavaScript的

因此,我所做的就是創建一個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要在我的javascript功能 通過這裏是我做過什麼

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

嘗試改變下面一行:

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

爲:

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

// OR 

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

如果你設置你的元素是一個block元素,它將顯示下一行,因爲這是塊元素做。如果您在display屬性設置爲空字符串,應該將其設置爲默認display類型,其在輸入元素的情況下應該是inline特定元素類型做再次可見。如果這不起作用,你可以明確地將其設置爲inline

有關display的更多信息,請訪問:http://www.quirksmode.org/css/display.html - 完整的圖片以及頁面底部的更改設置即時演示。

+0

感謝先生您是天使。^_ ^也感謝您的描述。現在工作正常。 – Janwel 2012-02-07 02:40:46

0

你也可以不用使用JavaScript。 要做到這一點,您將需要使用2個面板。在一個面板中保留您的標籤,並在其他面板中保留您的文本框。現在通過將其可見屬性設置爲false,使文本框的面板不可見。 現在處於按鈕單擊事件中獲取標籤文本並將其存儲在字符串變量中,並將包含標籤的面板的visible屬性更改爲false。然後將包含文本框的面板的可視屬性更改爲true,並使用變量中的字符串設置text屬性。