2012-02-07 15 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属性。