问题描述
|
我陷入了某种奇怪的状况,即我在ajax工具包tabcontainer内有一个gridview。在选项卡索引更改上,我绑定网格。但是什么也没发生。网格未出现。我检查了以下内容
观看状态
网格的可见性
父表的可见性。
数据来自方法
标签面板的可见性
甚至我已经调试并添加了watch,以在加载页面之前检查其是否为null。
请帮帮我
**下面是更新的代码**
<HTMLCode>
<Toolkit:TabPanel HeaderText=\"Pending Challans\" ID=\"tpPendingChallan\" runat=\"server\" Height=\"200px\" >
<ContentTemplate>
<table style=\"width: 100%\">
<tr>
<td>
<asp:GridView ID=\"gvPendingChallans\" runat=\"server\" AutoGenerateColumns=\"True\" CellPadding=\"4\" Width=\"100%\" OnPageIndexChanging=\"gvPendingChallans_PageIndexChanging\"
OnRowCommand=\"gvPendingChallans_RowCommand\" AllowPaging=\"True\" GridLines=\"None\">
</asp:GridView>
</td>
</tr>
</table>
</ContentTemplate>
</Toolkit:TabPanel>
</HTMLCode>
================================================== ======================
<C#>
private void BindPendingChallans()
{
var dat = JobCardManager.displayChallan();
gvPendingChallans.DataSource = dat;
gvPendingChallans.DataBind();
}
protected void tcmembers_ActiveTabChanged(object sender,EventArgs e)
{
if(tcmembers.ActiveTabIndex == 6)
{
BindPendingChallans();
}
}
</C#>
解决方法
抱歉,我的第一个答案未解释您的代码。我认为这只是网格视图的简单填充,但是经过审查,我发现您正在使用Ajax Toolkit库,并且网格位于选项卡中。您可以尝试以下方法:
<%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeFile=\"Default.aspx.cs\" Inherits=\"_Default\" %>
<%@ Register Assembly=\"AjaxControlToolkit\" Namespace=\"AjaxControlToolkit\" TagPrefix=\"Toolkit\" %>
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\">
<head id=\"Head2\" runat=\"server\">
<title>Untitled Page</title>
<style type=\"text/css\">
.style1
{
font-family: Arial;
color: #3399FF;
}
</style>
</head>
<body class=\"style1\">
<form id=\"form1\" runat=\"server\">
<asp:ScriptManager ID=\"ScriptManager2\" runat=\"server\" EnablePageMethods=\"true\" />
<div>
<asp:UpdatePanel ID=\"upMember\" runat=\"server\" UpdateMode=\"Conditional\">
<ContentTemplate>
<table cellpadding=\"1\" cellspacing=\"4\" border=\"0\" width=\"100%\">
<tr>
<td>
<Toolkit:TabContainer ID=\"tcMembers\" runat=\"server\" AutoPostBack=\"true\"
ActiveTabIndex=\"0\" onactivetabchanged=\"tcMembers_ActiveTabChanged\">
<Toolkit:TabPanel HeaderText=\"Pending Challans\" ID=\"tpPendingChallan\" runat=\"server\"
Height=\"200px\">
<ContentTemplate>
<asp:GridView ID=\"gvPendingChallans\" runat=\"server\" AutoGenerateColumns=\"True\" CellPadding=\"4\"
Width=\"100%\" OnPageIndexChanging=\"gvPendingChallans_PageIndexChanging\" OnRowCommand=\"gvPendingChallans_RowCommand\"
AllowPaging=\"True\" GridLines=\"None\">
</asp:GridView>
</ContentTemplate>
</Toolkit:TabPanel>
<Toolkit:TabPanel HeaderText=\"Pending 2\" ID=\"tpPending2\" runat=\"server\"
Height=\"200px\">
<ContentTemplate>
<asp:GridView ID=\"GridView1\" runat=\"server\" AutoGenerateColumns=\"True\" CellPadding=\"4\"
Width=\"100%\" OnPageIndexChanging=\"gvPendingChallans_PageIndexChanging\" OnRowCommand=\"gvPendingChallans_RowCommand\"
AllowPaging=\"True\" GridLines=\"None\">
</asp:GridView>
</ContentTemplate>
</Toolkit:TabPanel>
</Toolkit:TabContainer>
</td>
<td width=\"2%\">
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>
然后在您的代码后面:
protected void Page_Load(object sender,EventArgs e)
{
upMember.Update();
}
private void BindPendingChallans()
{
//var dat = JobCardManager.DisplayChallan();
//gvPendingChallans.DataSource = dat; gvPendingChallans.DataBind();
}
protected void tcMembers_ActiveTabChanged(object sender,EventArgs e)
{
if (tcMembers.ActiveTabIndex == 6)
{
BindPendingChallans();
}
}
protected void gvPendingChallans_PageIndexChanging(object sender,GridViewPageEventArgs e){
}
protected void gvPendingChallans_RowCommand(object sender,GridViewCommandEventArgs e){
}
注意:在\ tcMembers_ActiveTabChanged \中,您已指定标签索引6
Tab索引以0开头。也许您可以根据
您打算使用的标签...。
问候,