템플릿 필드를 통해 데이터 바인딩 된 asp : GridView 내부에서 asp : Button을 인스턴스화합니다. 일부 버튼은 서버 측 함수를 호출하기로되어 있지만 일부 이상한 이유 때문에 그렇지 않습니다. 모든 버튼은 클릭 할 때 현재 페이지의 포스트 백을 실행하고 아무 것도하지 않고 효과적으로 페이지를 다시로드합니다.asp : Button이 서버 측 함수를 호출하지 않습니다.
<asp:GridView ID="gv" runat="server" AutoGenerateColumns="false" CssClass="l2 submissions" ShowHeader="false">
<Columns>
<asp:TemplateField>
<ItemTemplate><asp:Panel ID="swatchpanel" CssClass='<%# Bind("status") %>' runat="server"></asp:Panel></ItemTemplate>
<ItemStyle Width="50px" CssClass="sw" />
</asp:TemplateField>
<asp:BoundField DataField="description" ReadOnly="true">
</asp:BoundField>
<asp:BoundField DataField="owner" ReadOnly="true">
<ItemStyle Font-Italic="true" />
</asp:BoundField>
<asp:BoundField DataField="last-modified" ReadOnly="true">
<ItemStyle Width="100px" />
</asp:BoundField>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="viewBtn" cssclass='<%# Bind("sid") %>' runat="server" Text="View" OnClick="viewBtnClick" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
viewBtn 상기 서버 측 viewBtnClick() 함수를 호출한다 : 아래
코드의 단편이다. 적절한 서명 (object, EventArgs)과 함께 정의 된 함수가 있습니다. 한 가지주의해야 할 점은이 코드는 실제로 다른 ASCX에로드 된 ASCX 안에 있으며 결국 ASPX에로드된다는 것입니다.문제에 대한 도움이나 의견을 보내 주시면 감사하겠습니다. 감사!
(오, 나의 쓰레기 HTML/CSS 의미를 생각하지 마십시오 - 이것은 매우 초기 단계에 아직도있다 : P)
그래, 가장 확실합니다. : p –
이 하위 ascx에 어떤 시점에서 컨트롤 트리에 동적으로 추가 된 항목이 있습니까? – Tejs
여기에있을 수 있습니다. 예, 당신 말이 맞아요. ASCX는 GET 매개 변수에 따라 동적으로 상위 ASCX에로드됩니다. –