私はサーバーから大量のテキストを取得するgridview列を持っています。そのため、グリッドが読み込まれた後でそのテキストをすべて表示するのではなく、ユーザーが展開リンクをクリックして折りたたみリンクで閉じた場合にのみ表示します。ここに私が持っているものがあります。 私はすでに、両方のJavaScript関数を1つにまとめることができることを知っています。今は2つの別々の機能でテストしています。divタグを表示/非表示javascript
<script type="text/javascript" language="javascript" >
function hidelink() {
var col = $get('col');
var exp = $get('exp');
col.style.display = 'none';
exp.style.display = '';
}
function showlink(){
var col = $get('col');
var exp = $get('exp');
col.style.display = '';
exp.style.display = 'none';
}
<asp:GridView ID="GridView2" Width="400px" runat="server" AutoGenerateColumns="False"
AllowPaging ="True"
BackColor="White" BorderColor="#999999"
BorderStyle="None" BorderWidth="1px"
CellPadding="3" DataKeyNames="APPID"
DataSourceID="SqlDataSource3"
PagerSettings-Mode="NextPreviousFirstLast" EnableSortingAndPagingCallbacks="True">
<PagerSettings Mode="NextPreviousFirstLast" />
<RowStyle BackColor="#EEEEEE" ForeColor="Black" />
<Columns>
<asp:BoundField DataField="stuff" HeaderText="Name" ReadOnly="True"
SortExpression="app" />
<asp:BoundField DataField="Description" HeaderText="Short Descr"
ReadOnly="True" SortExpression="des" />
<asp:TemplateField HeaderText="Long Descr" SortExpression="data">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("data") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<div id="col">
<asp:LinkButton ID="expand" runat="server" OnClientClick ="hidelink();return false;">Expand</asp:LinkButton>
</div>
<div id="exp" style="display:none">
<asp:LinkButton ID="collapse" runat="server" OnClientClick ="showlink();return false;">Collapse</asp:LinkButton>
</div>
<asp:Panel ID="Panel1" runat="server" >
<table>
<tr>
<td> <%#Eval("LongDescription")%>
</td>
</tr>
</table>
私の問題は、最初のレコードはそれが必要すべてを行いということです。 (展開/折りたたみ)、他の行は展開するだけでdivタグの展開リンクは非表示になります。展開ボタンが他の行でヒットすると、最初の行が崩壊リンクを表示するように変更されるため、最初の行のIDのみが見つかります。どうすればこの問題を解決できますか?
これはJavascriptでどうやって行うのですか? – Eric
これは最初の行でもうまくいくようです。 – Eric
私が使っているパネルを取り外すと言っていますか? – Eric