GridView控件不可见,即使捆绑后 [英] Gridview not visible even after binding

查看:122
本文介绍了GridView控件不可见,即使捆绑后的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我得到了stucked到一些奇怪的情况,我有一个Ajax工具包TabContainer的内一个gridview。在标签指数的变化我绑定网格。但没有happend。电网没有出现。我有检查以下


  1. 视图状态

  2. 格能见度

  3. 父表的可见性。

  4. 数据是从方法来

  5. 标签面板的知名度

连我都调试并添加表检查它的加载页面之前得到空。

请帮我出

**以下是更新code **

 < HTML code>
     <工具包:的TabPanel的HeaderText =待沙朗ID =tpPendingChallan=服务器HEIGHT =200像素>
     <&的ContentTemplate GT;
      <表样式=宽度:100%>
        &所述; TR>
          &所述; TD>
            < ASP:GridView控件ID =gvPendingChallans=服务器的AutoGenerateColumns =真的cellpadding =4WIDTH =100%OnPageIndexChanging =gvPendingChallans_PageIndexChanging
        OnRowCommand =gvPendingChallans_RowCommandAllowPaging =真的网格线=无>
            < / ASP:GridView的>
            < / TD>
          < / TR>
         < /表>
    < /&的ContentTemplate GT;
  < /工具包:&的TabPanel GT;
    < / HTML code>

=============================================== =========================

 < C#>
      私人无效BindPendingChallans()
            {
                变种的DAT = JobCardManager.DisplayChallan();
                gvPendingChallans.DataSource = DAT;
                gvPendingChallans.DataBind();
            }
     保护无效tcMembers_ActiveTabChanged(对象发件人,EventArgs的发送)
    {
        如果(tcMembers.ActiveTabIndex == 6)
        {
            BindPendingChallans();
        }
    }
    < / C#>


解决方案

对不起,我先回答你的code小姐间pretation。我认为这只是网格视图的一个简单的人口,但作为检讨,我发现你正在使用的Ajax工具包库和网格的标签里面选择。你可以试试这个:

 <%@页面语言=C#AutoEventWireup =真codeFILE =Default.aspx.cs继承=_默认%GT;
<%@注册大会=AjaxControlToolkit命名空间=AjaxControlToolkit标签preFIX =工具包%GT;
!< D​​OCTYPE HTML PUBLIC - // W3C // DTD XHTML 1.0过渡// ENhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
< HTML的xmlns =htt​​p://www.w3.org/1999/xhtml>
<头ID =头像2=服务器>
    <标题>无标题页< /标题>
    <风格类型=文/ CSS>
        .style1
        {
            FONT-FAMILY:宋体;
            颜色:#3399FF;
        }
    < /风格>
< /头>
<车身类=STYLE1>
    <表ID =form1的=服务器>
    < ASP:的ScriptManager ID =ScriptManager2=服务器的EnablePageMethods =真/>
    < D​​IV>
        < ASP:的UpdatePanel ID =upMember=服务器的UpdateMode =条件>
            <&的ContentTemplate GT;
                <表格的cellpadding =1= CELLSPACING4BORDER =0WIDTH =100%>
                    &所述; TR>
                        &所述; TD>
                            <工具包:TabContainer的ID =tcMembers=服务器的AutoPostBack =真
                                ActiveTabIndex =0onactivetabchanged =tcMembers_ActiveTabChanged>
                                <工具包:的TabPanel的HeaderText =待沙朗ID =tpPendingChallan=服务器
                                    HEIGHT =200像素>
                                      <&的ContentTemplate GT;
                                        < ASP:GridView控件ID =gvPendingChallans=服务器的AutoGenerateColumns =真的cellpadding =4
                                            WIDTH =100%OnPageIndexChanging =gvPendingChallans_PageIndexChangingOnRowCommand =gvPendingChallans_RowCommand
                                            AllowPaging =真的网格线=无>
                                        < / ASP:GridView的>
                                    < /&的ContentTemplate GT;
                                < /工具包:&的TabPanel GT;
                                 <工具包:的TabPanel的HeaderText =待定2ID =tpPending2=服务器
                                    HEIGHT =200像素>
                                       <&的ContentTemplate GT;
                                        < ASP:GridView控件ID =GridView1=服务器的AutoGenerateColumns =真的cellpadding =4
                                            WIDTH =100%OnPageIndexChanging =gvPendingChallans_PageIndexChangingOnRowCommand =gvPendingChallans_RowCommand
                                            AllowPaging =真的网格线=无>
                                        < / ASP:GridView的>
                                    < /&的ContentTemplate GT;
                                < /工具包:&的TabPanel GT;
                            < /工具包:TabContainer的>
                        < / TD>                        < TD WIDTH =2%>
                            &安培; NBSP;
                        < / TD>
                    < / TR>
                < /表>
            < /&的ContentTemplate GT;
        < / ASP:的UpdatePanel>
    < / DIV>
    < /表及GT;
< /身体GT;
< / HTML>

然后在你的code背后:

 保护无效的Page_Load(对象发件人,EventArgs的发送)
    {
        upMember.Update();
    }
    私人无效BindPendingChallans()
    {
        //变种的DAT = JobCardManager.DisplayChallan();
        //gvPendingChallans.DataSource = DAT; gvPendingChallans.DataBind();
    }
    保护无效tcMembers_ActiveTabChanged(对象发件人,EventArgs的发送)
    {
        如果(tcMembers.ActiveTabIndex == 6)
        {
            BindPendingChallans();
        }
    }
    保护无效gvPendingChallans_PageIndexChanging(对象发件人,GridViewPageEventArgs E){
    }
    保护无效gvPendingChallans_RowCommand(对象发件人,GridViewCommandEventArgs E){
    }

请注意:那你'tcMembers_ActiveTabChanged你有指定标签索引6
      选项​​卡索引从0开始。也许你可以调整它取决于数量
      您打算标签....

问候,

I got stucked to some weird condition where I have a gridview inside a ajax toolkit tabcontainer. On tab index change i am binding grid. But nothing happend. Grid is not appearing. I have check the following

  1. Viewstate
  2. Visibility of grid
  3. Visibility of the parent table.
  4. Data is coming from the method
  5. visibility of the tab panel

Even i have debugged and added watch to check if its getting null before loading the page.

Please help me out

** BELOW IS THE UPDATED CODE**

    <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#>

解决方案

Sorry for miss interpretation of your code with my first answer. I thought that it just a simple population of grid view, but as review I found that you are using the Ajax Toolkit library and your grid is inside the tab selection. You can try this:

<%@ 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%">
                            &nbsp;
                        </td>
                    </tr>
                </table>
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
    </form>
</body>
</html>

Then in your code behind:

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){
    }

Note: That in you 'tcMembers_ActiveTabChanged' you had specify tab index 6 The Tab index begins with 0. Maybe you can adjust it depending the number of you Intended tab....

Regards,

这篇关于GridView控件不可见,即使捆绑后的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆