如何解决即使绑定后,Gridview也不可见
| 我陷入了某种奇怪的状况,即我在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开头。也许您可以根据
您打算使用的标签...。
问候,
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。