1. 程式人生 > >當資料來源為空時,gridview只顯示錶頭

當資料來源為空時,gridview只顯示錶頭

今天在做網頁時,發現gridview中的資料來源為空時,它不顯示,於是就想,能不能讓它在沒有資料來源的時候也顯示呢?

於是就在網上找資料,找到了很多,但大部分的都寫得比較複雜,經過我不懈的努力,終於找到了幾條看似比較簡單的程式碼,經過我的修改和驗證,效果出來了,現在把這些程式碼總結一下,一是留給自己的,二是方便其它人。

方法一:通過在CS中寫程式碼來實現

        sda.Fill(ds, "titles"); //這裡的titles是指表名


        DataTable dt = new DataTable();
        dt.Columns.Add("title");
        dt.Columns.Add("type");
        dt.Columns.Add("pub_id");
        dt.Columns.Add("price");//title,type,pub_id,price都是列名

        if (dt.Rows.Count == 0) //判斷表中的行數,如果為0,表示沒有找到,即資料來源為空
        {
            dt.Rows.Add(dt.NewRow());//新增一條新的空白行
        }

        GridView1.DataSource = dt;
        GridView1.DataBind();

        int columncount = dt.Columns.Count; //有多少列
        GridView1.Rows[0].Cells.Clear(); //給第一行的每列清零
        GridView1.Rows[0].Cells.Add(new TableCell());
        GridView1.Rows[0].Cells[0].ColumnSpan = columncount;//跨列數
        GridView1.Rows[0].Cells[0].Text = "No Record Found!";
        GridView1.Rows[0].Cells[0].Style.Add("text-align", "center");

方法二:在源中表示

方法很簡單:就是先執行有資料的gridview,然後檢視編譯的頁面的“檢視原始檔” 把裡面生成的table的樣式摳出來,放到 <EmptyDataTemplate> </EmptyDataTemplate>。

這樣還沒完,還有二步:第一步:在<table></table>中,保留第一二行,其它的行都刪除。第一行的內容不變,第二行合併成一個單元格,並在此單元格里寫上“沒有找到記錄”這樣的資訊。位置隨你,本人喜歡讓其居中

第二步:回到CS檔案,把原來能查到資料的sql語句改一下,改成不能查詢資料的sql語句。

方法三:如果不用EmptyDataTemplate模板,可以設定GridView 的EmptyDataText屬性,這樣只顯示一句話和一個邊框

本人覺得不是很好看。雖然簡單,不太喜歡!

此時,大功告成!

附:第二種方法其實是以表格的方式顯示沒有資料來源時的資訊,從表面上看去像顯示了gridview的資訊,其實不是。這就要求大家將表格的樣式最好設定得和gridview的樣式一樣,讓外人看不出破綻。呵呵!

相關推薦

資料來源gridview顯示

今天在做網頁時,發現gridview中的資料來源為空時,它不顯示,於是就想,能不能讓它在沒有資料來源的時候也顯示呢? 於是就在網上找資料,找到了很多,但大部分的都寫得比較複雜,經過我不懈的努力,終於找到了幾條看似比較簡單的程式碼,經過我的修改和驗證,效果出來了,現在把這些程式

對象或對象屬性如何安全給對象或對象屬性添加默認值

方案 string sign isp ignorecas 兩種 對象 習慣 比較 今天遇到的問題,也是寫代碼的習慣問題,邏輯沒有問題,但不規範,也不安全, 容易出現漏洞。 先將代碼貼出: String isPrintLogo = vodInfoDto.getIsPrint

spring boot加mybatis使用Map返回屬性也會沒有(轉)

call pri per n-n spring fig setter 解決 strong 使用spring boot加mybatis時,設置Map返回,當值為空時屬性也會沒有,就會報錯 在application.properties中加入下面配置,將會解決這個問題。

Android 兩個文字框同時不按鈕可用

啥也不薛,先看效果圖 主要就是去設定文字框的監聽事件,由於有兩個文字框,所以直接呼叫兩次就行,之前去巢狀著呼叫,既麻煩,還容易出錯,我最終也沒通過巢狀搞出來,唉,然後就百度到了另一種方法,在這裡記下來,算是學習之路的一個交代。 下面直接貼程式碼: //對文字框的監聽事件

關於hql中部分關聯欄位不報錯而直接查不出欄位的記錄

select b.listNo,b.appGNo,b.trGno,b.complex,b.commName,b.commSpec,b.tradeUnit,b.tradeQty,b.unit,b.qty,b.note, c.listNo,c

jqGrid表格載入返回資料alert一句提示

    loadComplete: function () {                             var re_records = $("#table2").jqGrid('getGridParam', 'records'); //獲取資料總條數 

報表本年對應的上一年資料轉換0

update session.results set tq_qty= case when tq_qty=0 or tq_qty is null then 0 else tq_qty end,      

用mybatis更新資料資料0無法更新

在bean中,count是long型別: private Long count; 需求就是利用下面的更新語句更新bills表中的count和amout <update id="updateBills" parameterType="map" >

Java過載函式引數null呼叫的處理

精確性原則 關於以下程式的輸出結果: public class TestNull { public void show(String a){ System.out.println("String"); } public void show(Object o)

C語言之定義一個函式實現對字串做如下操作:字元字母大小寫互換字元數字原樣輸出有其它字元出現時結束操作返回已處理的字串

Action(){       char str[]={"tEst234%^road"};int len = sizeof(str)/sizeof(char);//strTest2呼叫函式lr_output_message("%s",strTest2(str,len)); r

物件get取值造成的錯誤

System.out.println("查詢到的學號和密碼:"+student.getStudent_id()+"和"+student.getPassword());當student物件為空時取值會造成錯誤

關於輸入多組測試資料資料0輸入結束

1.while(scanf("%d",&n)!=EOF) EOF在stdio.h中巨集定義為-1; 即有輸入時,迴圈繼續,其實,如無別的條件,一直會“輸入——處理”,“輸入——處理”的迴圈從而

mysql密碼c#如何執行一條cmd命令匯入sql檔案到資料庫並獲得mysql的輸出

mysql匯入sql檔案的cmd命令為: mysql -uroot -p密碼 -D資料庫名<sql檔案全路徑 但是當資料庫的密碼為空時,應該這樣: mysql -uroot -D資料庫名<

vue-cli + router生成的專案modehistory直接在url中輸入地址頁面訪問404或者重新整理頁面後404

有的時候,業務中會有一些需求,直接在其他地方,比如郵件中提供系統連結,通過點選一個url直接跳轉到我們的系統中來。 在本地開發時,直接輸入對應的url就可以訪問,但是當專案部署在伺服器之後,直接輸入url就會報錯404,這是因為router本身提供的就是一個 虛擬路徑,通過

圖片路徑什麼都不顯示(無x)

在<img ...>內新增 onerror=this.style.display="none",<img  onerror=this.style.display="none" src="<%=request.getContextPath() %>

原生js實現placeholder 獲取焦點失去焦點且恢復

pan .get fun NPU 清空 element 失去 document 實現 <body> <input type="text" value="請輸入內容" id="text1" /> </body> <scri

js 變數值0判斷是否(0=='')返回ture的問題

var aa = 0; if(aa==""){ alert("111"); } ------------------------------ var aa = 00; alert(aa==""); 都是返回true。 這是因為0與 ’ ’ 轉換成布林型都是false的。

js 變數值0判斷是否(0=='')返回ture的問題

var aa = 0; if(aa==""){ alert("111"); } ------------------------------ var aa = 00; alert(aa==""); 都是返回true。 這是因為0與 ’ ’ 轉換成布林型都是fa

js 變數值0判斷是否(0=="")返回ture的問題

var aa = 0; if(aa=="")alert("111"); 或者 var aa = 00; aa=="" 都是返回true。 這是因為0與 ’ ’ 轉換成布林型都是false的。 var aa = 0; if(aa.toStri

springmvc中的檢視模型的返回方式尤其注意返回值的預設檢視返回路徑

way1:略過; way2:(神似way1)通過在方法的引數中新增一個Model型別的引數,,該引數由spring自動生成傳入, 然後在方法內部使用addAttribute()方式新增模型資料, 最後使用return返回一個檢視名稱(檢視的路徑), 從而在頁面上可以同時使用模型資料以及得到檢視