在DataGrid中最左边是一模板列,一组checkbox
<asp:TemplateColumn>
<ItemTemplate>
<asp:CheckBox ID="chk" Runat="server" style="CURSOR:hand;background-Color:#99ccff" tooltip="选择接口"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>最右边也一模板列是一组超链接,单击用window.open新打开一个窗口
<asp:TemplateColumn>
<ItemTemplate>
<a href="#" onclick='<%#FormatUrl( DataBinder.Eval( Container.DataItem,"id").ToString() )%>' title="定制字段信息">
[字段定义]</a>
</ItemTemplate>现在要实现这样的功能,当左边的复选框没选中时,对应那一行的右边超链接没用,只是显示文本
当选中时,让右边的超链接有用,怎么实现呢?
</asp:TemplateColumn>

解决方案 »

  1.   

    <script language="javascript">
            function funcTest(obj)
            {
               var tmp = obj.id.replace('CheckBox1','HyperLink1');
               if(obj.checked)
                    document.all[tmp].innerHTML = 'aaaaaaaaa';
                    else
                    document.all[tmp].innerHTML = '';
            }
            </script>
    -------------------
    ....
    <asp:TemplateColumn>
                            <ItemTemplate>
                                <asp:CheckBox id="CheckBox1" runat="server" Text="AAAAA" onclick="funcTest(this);"></asp:CheckBox>
                            </ItemTemplate>
                        </asp:TemplateColumn>
                        <asp:TemplateColumn>
                            <ItemTemplate>
                                <a id="HyperLink1" href="#" runat=server></a>
                            </ItemTemplate>
                        </asp:TemplateColumn>
    --------------------
      

  2.   

    改进一下:
    function funcTest(obj)
            {
               var tmp = obj.id.replace('CheckBox1','HyperLink1');
               if(obj.checked)
                    document.all[tmp].style.display = 'inline';
               else
                    document.all[tmp].style.display = 'none';
            }