当前位置:编程学习 > C#/ASP.NET >>

困扰了一早上的gridview展现数据的问题,求高人帮忙


前台页面:
    <div id="query_message_area" runat="server">
    <asp:GridView ID="GridView2" runat="server" 
            AutoGenerateColumns="False" CellPadding="4" 
            ForeColor="#333333" GridLines="None" Height="50px"  DataKeyNames ="Id" Width="430px" 
            style="text-align: center" onrowcommand="GridView2_RowCommand" 
            >
            <AlternatingRowStyle BackColor="White" />
            <Columns>
                <asp:BoundField DataField="Department" HeaderText="部门" />
                <asp:BoundField DataField="Name" HeaderText="名称" />
                <asp:BoundField DataField="completecode" HeaderText="完全码" />
                <asp:BoundField DataField="Zhuxiaobiaozhi" HeaderText="状态" />
                <asp:TemplateField HeaderText="操作类型" ShowHeader="False">
                    <ItemTemplate>
                        <asp:Button ID="Button1" runat="server" CommandArgument='<%("Id")%>' CommandName="zhuxiao" Text="申请注销" OnClientClick="return confirm('你确认注销该条申请码?');" />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
            <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
            <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
            <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
            <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />

       

        </asp:GridView>
    </div>

后台:
protected void btn_zhuxiao_Click(object sender, EventArgs e)
    {
        string s = this.tb_accode.Text.Trim();
        List<Codes> list = new List<Codes>();
        list = CodeManager.GetAllACCodes1(s);
        if (list.Count == 0)
        {
           this.query_message_area.InnerHtml = "<br/><br/>您查询的AC码状态可能为已审批或者待审批状态,请在代码查询界面查询,或者在下面总表中查看!";
            
           // this.GridView2.Visible = false;
            
            this.GridView1.Visible = true;

            CodeDataBind(); 
               
        }
        else
        {
            this.query_message_area.InnerHtml = "";
            this.GridView2.Visible = true;
            GridView2.DataSource = list;
            GridView2.DataBind();
            CodeDataBind(); 
             
        }


    }

在先查询符合else条件的记录,可以显示;
查新符合if条件的也可以显示
但是,先查询if条件的,然后再查询else条件的就无法显示,gridview出不来呀!

--------------------编程问答-------------------- 没看出啥毛病啊,友情帮顶吧。分数好高啊,哈哈 --------------------编程问答-------------------- 你的this.GridView1没有设置DataSource,也没有DataBind --------------------编程问答-------------------- 2楼+1 --------------------编程问答--------------------
这种情况最好就是自己一步一步的跟

具体你的代码 注意
1.Visible是true和false的流程是否准确无误
2.绑定的数据源是否正确
3.绑定的数据源是否有数据 --------------------编程问答-------------------- 数据都没有任何问题,跟踪的时候,数据源里已经有数据了,就是显示不出来,那个gridview2第一次可以显示出不来,重复查询的时候也能出来,就是先查询其他状态,返回来再查询这个状态的时候,就出不来了 --------------------编程问答-------------------- 数据都没有任何问题,跟踪的时候,数据源里已经有数据了,就是显示不出来,那个gridview2第一次可以显示出不来,重复查询的时候也能出来,就是先查询其他状态,返回来再查询这个状态的时候,就出不来了 --------------------编程问答--------------------
引用
在先查询符合else条件的记录,可以显示;
查新符合if条件的也可以显示
但是,先查询if条件的,然后再查询else条件的就无法显示,gridview出不来呀!

照这样说,楼主的sql语句拼接的有问题 --------------------编程问答-------------------- <asp:Button ID="Button1" runat="server" CommandArgument='<%("Id")%>' CommandName="zhuxiao" Text="申请注销" OnClientClick="return confirm('你确认注销该条申请码?');" />
这里面一开始是这样写的:
CommandArgument='<%#Eval("Id")%>' 
结果总是报如下错误:
Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用。

--------------------编程问答-------------------- 有没有可能是没有刷新页面啊,页面没有及时更新到最新的状态 --------------------编程问答--------------------
引用 1 楼 xieliliang 的回复:
没看出啥毛病啊,友情帮顶吧。分数好高啊,哈哈
+1 --------------------编程问答-------------------- 不会啦,
页面刷新没问题吧,条件1能查出东西来,条件2也能查出来,但是,先查条件1再查条件2的时候,就没东西了,跟踪的时候,数据源里的List里面已经能看到数据了!页面死活呈现不出来!在databing()的时候,报错如下:Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用。

--------------------编程问答-------------------- 加个<asp:BoundField DataField="ID" HeaderText="" Visible="False"/>
试试 --------------------编程问答--------------------
引用 8 楼 qq769557872 的回复:
<asp:Button ID="Button1" runat="server" CommandArgument='<%("Id")%>' CommandName="zhuxiao" Text="申请注销" OnClientClick="return confirm('你确认注销该条申请码?');" />
这里面一开始是这样写的:
CommandArgument='<%#Eval("Id")%>……


红色绑定的语法CommandArgument='<%#Eval("Id")%>' --------------------编程问答--------------------
引用 12 楼 wanglei19880622 的回复:
加个<asp:BoundField DataField="ID" HeaderText="" Visible="False"/>
试试


错误依旧! --------------------编程问答--------------------
引用 13 楼 codingr 的回复:
引用 8 楼 qq769557872 的回复:
<asp:Button ID="Button1" runat="server" CommandArgument='<%("Id")%>' CommandName="zhuxiao" Text="申请注销" OnClientClick="return confirm('你确认注销该条申请码?');" />
这里面一开始是这样写的:
Command……


我一开始就是这样写的呀,报如下错误:
报错如下:Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用。

--------------------编程问答-------------------- 发现有个类似帖子
http://topic.csdn.net/u/20110109/15/BE2B0187-1979-4004-A12B-0D2849041244.html --------------------编程问答--------------------
引用 16 楼 wanglei19880622 的回复:
发现有个类似帖子
http://topic.csdn.net/u/20110109/15/BE2B0187-1979-4004-A12B-0D2849041244.html


看过了,也试过了,没用! --------------------编程问答-------------------- CodeDataBind() 这个方法里面代码是什么 --------------------编程问答--------------------
引用 18 楼 zhangdaowu5 的回复:
CodeDataBind() 这个方法里面代码是什么

 protected void CodeDataBind()
    {
        List<Codes> list = new List<Codes>();
        list = CodeManager.GetAllACCodeByIsApprove1("1");

        if (list.Count == 0)
        {
            this.message_dataview_area.InnerHtml = "<br/><br/><br/><br/>暂无数据!";


          //  this.GridView1.Visible = false;
        }
        else
        {
            GridView1.DataSource = list;
            GridView1.DataBind();
        }
    } --------------------编程问答-------------------- grid 1和grid2  会不会覆盖了 --------------------编程问答-------------------- 有没有使用UpdatePanel,btn_zhuxiao与GV是不是被它分离了 --------------------编程问答--------------------
引用 20 楼 lvjianwu 的回复:
grid 1和grid2 会不会覆盖了

没有呀,第一次查询就可以正常出现呀!如果不查询另外一个状态的话,重复查询也能出来,就是一查询另外一个状态的记录过后,再查询这个,就出不来了哦! --------------------编程问答--------------------
引用 21 楼 hcf_force 的回复:
有没有使用UpdatePanel,btn_zhuxiao与GV是不是被它分离了


没用UpdatePanel --------------------编程问答-------------------- 两个GridView覆盖啦 --------------------编程问答-------------------- 把else{}中的CodeDataBind();  去掉
--------------------编程问答-------------------- list.Count==0,没获取到数据
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,