내가 중첩의 GridView를 클릭/축소 확대해야중첩 GRIDVIEW 행이 다음과 같이
<asp:GridView ID="gvParent" runat="server" DataKeyNames="id">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:GridView ID="gvChild" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lblChild1" runat="server"/>
</ItemTemplate>
</asp:TemplateField>
//... some more child columns
</Columns>
</asp:GridView>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lblParent1" runat="server"/>
</ItemTemplate>
</asp:TemplateField>
//... some more parent columns
<asp:TemplateField>
<ItemTemplate>
<asp:HiddenField ID="IsExpanded" ClientIDMode="Static" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
사용자가 부모 행의 아무 곳이나 클릭 할 때 내가하고 싶은 것은, 자식 행이 보여주는, 확장을 부모와 관련된 하위 GridView의 모든 행을 다시 클릭하면 축소됩니다.
데이터를 GridViews로 가져올 수 있으며 this tutorial처럼 확장/축소 작업을 수행 할 수 있지만 이미지를 클릭 할 수 없도록하려면 전체 행을 클릭 할 수 있어야합니다. 적어도 시도하고 그것이 내가 튜토리얼에서 같은 논리를 확장 할에 도착
:
$(function() {
$("[id*=gvParent] td").click(function() {
$(this).closest("tr").after("<tr><td></td><td colspan = '999'>" + $(this).next().html() + "</td></tr>");
});
});
그러나 그것으로 해당 행 내에서 클릭 된 열의 오른쪽에 바로 복사 칼럼의 내용을 다음 행 (snip 참조). 아마 간단 할거라 확신하지만 어디서나 답을 찾을 수 없습니다!
UPDATE :
지금이 :
나 개폐 개별 행하지만 하나 개의 행이 열려 다음 다른 열 때, 그 옆에있는 행이 삭제 될 수 있습니다$("[id*=gvFileUploadAdmin] td").click(function() {
if ($("#IsExpanded").val() == "expanded") {
debugger;
collapseRow(this);
}
else if (typeof $("#IsExpanded").val() == 'undefined'
|| $("#IsExpanded").val() == "collapsed") {
expandRow(this);
}
});
function expandRow(row) {
$(row)
.closest("tr")
.after("<tr><td></td><td colspan = '999'>" +
$("[id*=pnlFiles]", $(row).closest("tr")).html() +
"</td></tr>");
$("#IsExpanded").val("expanded");
};
function collapseRow(row) {
$(row).closest("tr").next().remove();
$("#IsExpanded").val("collapsed");
}
. 고유 ID로 계속 진행되고 있지만 수정 방법을 잘 모릅니다. 나는이 일을 백그라운드에서 몇 가지 C#을해야합니까 :
HiddenField IsExpanded = row.FindControl("IsExpanded") as HiddenField;
var uniqueId = IsExpanded.UniqueID;
IsExpanded.Value = Request.Form[uniqueId];
을하지만 제거 때 그것은으로 Request.Form는 [가 UniqueID] 반환 널 (null) 때문에 그것이 작동하는 방법에 차이가 없습니다.
감사하지만에 따라 [이 질문은] (http://stackoverflow.com/questions/891918/asp-net-grid-view-vs-list-view), ListView가이 아니다 정말 내가 뭘 찾고 있어요. 게다가 버튼 하나가 아니라 전체 행을 클릭 할 수 있기를 바랍니다. – madster
링크 버튼이 보이지 않습니다. 기본적으로 전체 행을 클릭 가능/선택 가능하게 만듭니다. – Renshai
이전에 감독을위한 Aoplogies. 위의 모든 것을 구현했지만 행이 선택되면 중첩 된 gridview는 표시되지 않으며 같은 목록이 표시됩니다. 그런 다음 다시 선택하면 모든 행이 사라집니다. 어쨌든 내가 선택한 항목 템플리트의 필드를 반복하는 것만 큼 정확한 접근 방식이라고 생각하지 않습니다. 수동으로 그리드 형식으로 조작해야합니다. 이미 그리드 뷰가있는 반면에. – madster