關於php實現datagrid的信息

本文目錄一覽:

如何自定義datagrid的header

具體實現的過程:

第一步,我們要做一個新的ColumnHeader。這裡直接用來silverlight.net上一位高手的代碼,並且做了擴展,主要是添加了Header的點擊事件和過濾框的事件,

以及一個新的屬性用來保存字段名。應為在實際的項目中,我們不可能在Grid上直接顯示數據庫的字段名,而是要用中文來顯示。代碼不是太複雜,就不做解釋了。

GridHeader.cs

1 [TemplatePart(Name = GridHeader.HeaderTextElement, Type = typeof(FrameworkElement))]

2 [TemplatePart(Name = GridHeader.FilterTextElement, Type = typeof(TextBox))]

3 public class GridHeader : Control

4 {

5 public delegate void HeaderClickEvent(string fieldname);

6 public event HeaderClickEvent OnSort;

7

8 public delegate void FilterTextEvent(string fieldname, string filtertext);

9 public event FilterTextEvent OnFilter;

10

11 protected const string HeaderTextElement = “btnHeaderText”;

12 protected const string FilterTextElement = “txtFilerText”;

13

14 Button btn_header;

15 TextBox filterText;

16

17 #region Constructor

18 public GridHeader()

19 {

20 this.DefaultStyleKey = typeof(GridHeader);

21 }

22 #endregion

23

24 #region HeaderText

25 /// summary

26 /// Identifies the HeaderText dependency property.

27 /// /summary

28 public static readonly DependencyProperty HeaderTextProperty = DependencyProperty.Register(“HeaderText”, typeof(string), typeof(GridHeader), null);

29

30 /// summary

31 /// Gets or sets the HeaderText possible Value of the int object.

32 /// /summary

33 public string HeaderText

34 {

35 get { return (string)GetValue(HeaderTextProperty); }

36 set { SetValue(HeaderTextProperty, value); }

37 }

38 #endregion HeaderText

39

40 #region FilterText

41

42 /// summary

43 /// Identifies the FilterText dependency property.

44 /// /summary

45 public static readonly DependencyProperty FilterTextProperty = DependencyProperty.Register(“FilterText”, typeof(string), typeof(GridHeader), null);

46

47 /// summary

48 /// Gets or sets the FilterText possible Value of the string object.

49 /// /summary

50 public string FilterText

51 {

52 get { return (string)GetValue(FilterTextProperty); }

53 set { SetValue(FilterTextProperty, value); }

54 }

55 #endregion FilterText

56

57 #region FieldText

58 public static DependencyProperty FieldTextProperty = DependencyProperty.Register(“FieldText”, typeof(string), typeof(GridHeader), null);

59 public string FieldText

60 {

61 get { return (string)GetValue(FieldTextProperty); }

62 set { SetValue(FieldTextProperty, value); }

63 }

64

65 #endregion

66

67 public override void OnApplyTemplate()

68 {

69 base.OnApplyTemplate();

70 StackPanel sp = this.GetTemplateChild(“LayoutRoot”) as StackPanel;

71

72 btn_header = sp.Children[0] as Button;

73 filterText = sp.Children[1] as TextBox;

74

75 if (this.filterText != null)

76 this.filterText.LostFocus += new RoutedEventHandler(filterText_LostFocus);

77 if (this.btn_header != null)

78 this.btn_header.Click += new RoutedEventHandler(header_Click);

79 }

80

81 void header_Click(object sender, RoutedEventArgs e)

82 {

83 OnSort(FieldText);

84 }

85

86 void filterText_LostFocus(object sender, RoutedEventArgs e)

87 {

88 OnFilter(FieldText, filterText.Text.Trim());

89 }

90

第二步,在Themes下添加一個Generic.xaml,內容如下:

ResourceDictionary

xmlns=””

xmlns:x=””

xmlns:controls=”clr-namespace:SilverlightDemoApp;assembly=SilverlightDemoApp”

Style TargetType=”controls:GridHeader”

Setter Property=”Template”

Setter.Value

ControlTemplate TargetType=”controls:GridHeader”

StackPanel x:Name=”LayoutRoot” Background=”{TemplateBinding Background}”

Button x:Name=”btnHeaderText” Margin=”0″ BorderThickness=”0″ Content=”{TemplateBinding HeaderText}”/Button

TextBox x:Name=”txtFilterTextBox” Margin=”1,0,1,1″ Text=”{TemplateBinding FilterText}”/

/StackPanel

/ControlTemplate

/Setter.Value

/Setter

/Style

/ResourceDictionary

這裡定義了我們自定義的ColumnHeader的展現方式,包括用了一個Button和TextBox。

關於Generic.xaml我不是太明白這個文件,有些人說會自動產生這個文件,但是我的機器上並沒有這個文件,我是手工添加的,現建一個themes下建一個 SilverLight用戶控件,然後用上面的內容替換掉自動生成的內容,並且去掉Generic.xaml.cs的public Generic()裏面的代碼。

第三步,在DataGrid頁面上添加Resources。如下:

UserControl.Resources

Style x:Key=”grid-header” TargetType=”primitives:DataGridColumnHeader”

Setter Property=”VerticalAlignment” Value=”Center” /

Setter Property=”HorizontalAlignment” Value=”Stretch” /

Setter Property=”Template”

Setter.Value

ControlTemplate

my:GridHeader HeaderText=”{TemplateBinding Content}” Height=”Auto” Loaded=”GridHeader_Loaded” /

/ControlTemplate

/Setter.Value

/Setter

/Style

/UserControl.Resources

注意,要在文件頭部加上

xmlns:my=”clr-namespace:SilverlightDemoApp;assembly=SilverlightDemoApp”

就是這個my:GridHeader的namespace和assembly信息。不然就找不到my:GridHeader的了。

第四步,實現DataGrid所在頁面的代碼。

基礎的代碼可以見我的前一篇文檔。

Silverlight學習筆記二:DataGrid 服務器端分頁、排序的實現

Silverlight學習筆記二(續)

這裡主要寫一下修改的地方

xaml中的DataGrid部分。

Code

在獲取數據之後,對DataGrid的Header進行了處理。新增了CreateHeader()這個方法。

1 private void client_GetProductsPagingCompleted(object sender, GetProductsPagingCompletedEventArgs e)

2 {

3 if (e.Error == null)

4 {

5 products_list = e.Result.ToList();

6 dgData.ItemsSource = products_list;

7 if (pager == null)

8 {

9 pager = new Pager(e.TotalPage, 2);

10 pager.Click += new Pager.PagerButtonClick(pager_Click);

11 pager.PageIndex = 1;

12 spPager.Children.Clear();

13 spPager.Children.Add(pager);

14 //第一次時創建GridHeader

15 CreateHeader();

16 }

17 }

18 else

19 MessageBox.Show(e.Error.Message);

20 canvas.Visibility = Visibility.Collapsed;

21 }

22

23 //用來存儲HeaderText和數據庫字段之間的對照信息

24 Dictionarystring, string FieldDict = new Dictionarystring, string();

25 private void CreateHeader()

26 {

27 var v = from p in dgData.Columns

28 where p is DataGridBoundColumn

29 select p;

30 foreach (DataGridBoundColumn column in v.ToList())

31 {

32 string fieldname = column.Binding.Path.Path;

33 Style style_header = Resources[“grid-header”] as Style;

34 column.HeaderStyle = style_header;

35

36 //本來這裡我是希望可以直接設置Header的FieldText為字段名的,但是卻找不到什麼好的方法,

37 //

38 //my:GridHeader HeaderText=”{TemplateBinding Content}” Height=”Auto” Loaded=”GridHeader_Loaded” /

39 //Resources中這裡也不能直接綁定FieldText為Binding.Path.Path,因為這裡是從DataGridColumnHeader來的,

40 //DataGridColumnHeader只有Content,而找不到對應的綁定信息。

41 //

42 //另外,通過訪問Style的Setter,我也只能獲取到ControlTemplate,但是ControlTemplate下面的內容,也就是my:GridHeader取怎麼也獲取不到,

43 //如果有高人知道,請指教一下。謝謝

44 //

45 //所以,沒辦法,只能暫時把字段名和HeaderText都保存到Dictionary裏面,供後面使用

46

47 FieldDict.Add(column.Header.ToString(), fieldname);

48 }

49 }

50

51 private void GridHeader_Loaded(object sender, RoutedEventArgs e)

52 {

53 GridHeader header = sender as GridHeader;

54 header.OnFilter += new GridHeader.FilterTextEvent(header_OnFilter);

55 header.OnSort += new GridHeader.HeaderClickEvent(header_OnSort);

56 string fieldtext;

57 //在這裡,我們對Header的FieldText設置為字段名。

58 //如果能在這裡獲取到當前的Column的話,前面就不要用Dictionary了,但是這裡我仍然不知道該怎麼獲取到當前的Column。

59 if (FieldDict.TryGetValue(header.HeaderText, out fieldtext))

60 header.FieldText = fieldtext;

61 }

62

63 void header_OnSort(string fieldname)

64 {

65 //這裡具體的代碼就不寫了。

66 //在獲取到字段名之後,對數據進行排序。

67 MessageBox.Show(“對字段:” + fieldname + “進行排序”);

68 }

69

70 void header_OnFilter(string fieldname, string filtertext)

71 {

72 //這裡具體的代碼就不寫了。

73 //在獲取到字段名和關鍵字只有,就可以通過WCF獲取到指定的數據了。

74 MessageBox.Show(“對字段:” + fieldname + ” 按照 ” + filtertext + ” 進行過濾”);

75 }

winform如何通過php執行sql語句並將結果綁定到datagridview

你的想法錯了吧,不應該這樣子的。。。

.net 可以連接任何數據庫的,為什麼不直接自己連接並執行而要通過 PHP 調用?

如果是想調用遠程的,你可以將 php 程序做成一個 類似於 web services 的東西,返回 XML 格式的數據,這樣就可以綁定了。

在PHP 程序里執行 SQL ,然後返回指定格式的 XML 數據,再將 XML 綁定到你的控件中

數據庫中的數據在easyui datagrid中展示 出現問題 求PHP大神解決

jQuery easyUI一般不會有問題的,有問題的都是自己的js代碼!是不是你渲染datagrid的代碼出現問題的,可以貼出來看看嘛?

如何在DataGrid控件中實現編輯,刪除,分類

一、DataGrid控件用來顯示若干行數據信息,通常這些信息是從數據庫中讀取出來的。對DataGrid控件的每一行都可以進行編輯,刪除,查看等等操作,操作實際是對數據庫的更新。

這裡需要搞清楚:1.如何獲得所操作行的每一個列的具體內容;2. 針對哈飛的項目,如何進行刪除操作;

具體代碼:

…………

private void MyDataGrid_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)

{

if(e.CommandName == “ToDelete”)

{

/*獲取DataGrid列表中所選定行的各個列的文本信息,由於每一行前面有「編輯」和「更新」兩個按鈕,佔用了Cell[0]和Cell[1],因此,數據信息從Cell[2]開始,有幾列就以此類推*/

//獲取信息列各個單元格信息

string deleteTitle = e.Item.Cells[2].Text.ToString();

string deletePerson = e.Item.Cells[3].Text.ToString();

string deleteDate = e.Item.Cells[4].Text.ToString();

string deleteContent = e.Item.Cells[5].Text.ToString();

//書寫squery語句,格式要根據PL/SQL中package bodies中定義的格式書寫

string sQuery = “call

Prc_Hfnews.P_MODIFY(‘D’,'”+deleteTitle+”‘,'”+deletePerson+”‘,'”+deleteDate+”‘,'”+deleteContent+”‘,'”+NewsType+”‘,:arg_e_code,:arg_e_msg)”;

string ret_str = GeneralCommon.GF_Ms_ExecSql (sQuery);

if (ret_str== “OK”)//刪除成功

{

Response.Write(“script language=javascriptalert(‘OK!成功刪除!’)/script”);

}

else //刪除失敗

{

Response.Write(“script language=javascriptalert(‘Sorry!刪除失敗!’)/script”);

}

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/155128.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-17 02:39
下一篇 2024-11-17 02:39

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • Java 監控接口返回信息報錯信息怎麼處理

    本文將從多個方面對 Java 監控接口返回信息報錯信息的處理方法進行詳細的闡述,其中包括如何捕獲異常、如何使用日誌輸出錯誤信息、以及如何通過異常處理機制解決報錯問題等等。以下是詳細…

    編程 2025-04-29
  • 使用Python爬蟲獲取電影信息的實現方法

    本文將介紹如何使用Python編寫爬蟲程序,來獲取和處理電影數據。需要了解基本的Python編程語言知識,並使用BeautifulSoup庫和Requests庫進行爬取。 一、準備…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • Python爬取網頁信息

    本文將從多個方面對Python爬取網頁信息做詳細的闡述。 一、爬蟲介紹 爬蟲是一種自動化程序,可以模擬人對網頁進行訪問獲取信息的行為。通過編寫代碼,我們可以指定要獲取的信息,將其從…

    編程 2025-04-28
  • 如何使用Python執行Shell命令並獲取執行過程信息

    本文將介紹如何使用Python執行Shell命令並獲取執行過程信息。我們將從以下幾個方面進行闡述: 一、執行Shell命令 Python內置的subprocess模塊可以方便地執行…

    編程 2025-04-28
  • Python實現身份信息模擬生成與查驗

    本文將從以下幾個方面對Python實現身份信息模擬生成與查驗進行詳細闡述: 一、身份信息生成 身份信息生成是指通過代碼生成符合身份信息規範的虛假數據。Python中,我們可以使用f…

    編程 2025-04-27
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • Dapper使用getschema獲取表信息

    本文旨在介紹Dapper中使用getschema獲取表信息的方法和注意事項。 一、獲取某張表的所有列信息 使用Dapper獲取某張表信息,可以使用 `IDbConnection.G…

    編程 2025-04-27

發表回復

登錄後才能評論