日期:2014-05-17  浏览次数:20466 次

js如何控制DataGrid里元素的可见性
HTML code
 <asp:DataGrid ID="DataGrid_Profession" runat="server">
            <ItemStyle HorizontalAlign="Center"></ItemStyle>
            <HeaderStyle Font-Bold="True" HorizontalAlign="Center" BackColor="#E4ECF8"></HeaderStyle>
            <Columns>
                <asp:TemplateColumn HeaderText="专业名称">
                    <ItemTemplate>
                        <span id="span_ProfessionName" runat="server">
                            <%#Eval("profession_Name") %></span>
                        <input type="text" value='<%#Eval("profession_Name") % visible="false" runat="server" id="tb_Profession_Name" />
                    </ItemTemplate>
                </asp:TemplateColumn>
                <asp:TemplateColumn HeaderText="操作">
                    <ItemTemplate>
                        <input type="button" value="修改" id="btn_Update"/>
                    </ItemTemplate>
                </asp:TemplateColumn>
            </Columns>
            <PagerStyle Mode="NumericPages"></PagerStyle>
        </asp:DataGrid>

点击修改按钮,使tb_Profession_Name显示,求大神帮忙,小弟不胜感激!

------解决方案--------------------
只有给你的tb_Profession_Name定义一个class,如<input type="text" value='<%#Eval("profession_Name") % visible="false" runat="server" id="tb_Profession_Name" CssClass="test" />
修改按钮:
<input type="button" value="修改" id="btn_Update" onclick="testShow($(this))"/>


用JQUERY写: 
<script type="text/javascript">
function testShow(obj){
obj.parent().prev().children(".test").show();
}
</script>

------解决方案--------------------
不定义class也行,JQUERY里直接写:<script type="text/javascript">
function testShow(obj){
obj.parent().prev().children("input").show();
}
</script>

------解决方案--------------------
最好用jquery,用JS有的浏览器获取到的是不同的ID。
------解决方案--------------------
楼上用的就是jq
JScript code
        $(function () {
            $("input:button[id$='btn_Update']").click(function () {
                $(this).parent().prev().children("input:text[id$='tb_Profession_Name']").show();
            })
        })