在javascript上将标签更改为文本框

在javascript上将标签更改为文本框,javascript,asp.net,css,gridview,Javascript,Asp.net,Css,Gridview,首先,我的英语不是很好,但我会尽量让人理解 我所做的就是创建一个gridview,其中列; 两个控件分别控制一个标签和一个文本框 标签设置为可见 而textbox则相反 下面是我的gridview的客户端代码 <asp:Image ID="img" onclick="javascript:Toggle(this);" runat="server" ImageUrl="~/Images/minus.gif" ToolTi

首先,我的英语不是很好,但我会尽量让人理解

我所做的就是创建一个gridview,其中列; 两个控件分别控制一个标签和一个文本框 标签设置为可见 而textbox则相反

下面是我的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 />
在我的javascript上,我创建了一个函数来调用控件

  function validate(txtobj, lblobj) {

        document.getElementById(lblobj).style.display = 'none';
        document.getElementById(txtobj).style.display = 'block';  
    }
这样代码就可以工作了,我想差不多完成了,但是当我运行我的程序并点击标签时; 标签隐藏,但文本框在下面,就像在两者之间有一个

我再次检查了代码,但没有发现任何东西可以使下面的文本框。 先生/女士,您认为问题出在哪里?或者我应该为其添加CSS吗? 还是我的代码是个大问题? 我愿意接受建议,不管是好是坏。 顺便说一句,我对javascript真的很陌生


感谢您花时间和精力阅读我的问题。

尝试更改以下行:

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

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

// OR

document.getElementById(txtobj).style.display = 'inline';
如果将元素设置为
元素,它将显示在下一行,因为块元素就是这样做的。如果将
display
属性设置为空字符串,则应通过将其设置为特定元素类型的默认
display
类型使其再次可见,对于输入元素,该类型应为
inline
。如果这不起作用,您可以显式地将其设置为
inline


有关显示的更多信息,请参见此处:-包括图片,甚至在页面底部的动态演示中更改设置。

您也可以不使用javascript来完成此操作。 为此,您需要使用2个面板。在一个面板中保留标签,在另一个面板中保留文本框。现在,通过将textbox的visible属性设置为false,使其不可见。
现在,在按钮中单击事件获取标签文本并将其存储在字符串变量中,并将包含标签的面板的visible属性更改为false。然后将包含textbox的面板的visible属性更改为true,并使用变量中的字符串设置text属性。

谢谢,先生,您是天使。^也谢谢你的描述。它现在运转良好。
document.getElementById(txtobj).style.display = '';

// OR

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