Bonjour,
Je developpe actuellement une webpart pour editer un item d'une liste.
J'arrive à récupérer l'item et à l'afficher mais quand j'appui sur le bouton, mes champs se retrouvent vident.
J'utilise le fichier RH.SharePoint.SharePointWebControls.cs que vous pouvez télécharger depuis cette page
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119 using System; using System.ComponentModel; using System.Reflection; using System.Runtime.InteropServices; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Serialization; using Microsoft.SharePoint; using Microsoft.SharePoint.WebControls; using Microsoft.SharePoint.WebPartPages; using Microsoft.SharePoint.Utilities; using WebPart = Microsoft.SharePoint.WebPartPages.WebPart; using RH.SharePoint; // cf google pour trouver le fichier .cs namespace Web_Part_test { public class Web_Part_test : System.Web.UI.WebControls.WebParts.WebPart { private SPWeb MyWeb; private SPList MyList; private SPListItem MyItem; private SPControlMode MyControlMode; private Table _Table; private ImageButton _Button; private string _string = "test"; private int _PageNumber = 1; public Web_Part_test() { this.ExportMode = WebPartExportMode.All; } protected override void CreateChildControls() { _Table = new Table(); _Table.ID = "myTable"; Controls.Add(_Table); _Button = new ImageButton(); _Button.ID = "Button"; _Button.Click += new ImageClickEventHandler(_Button_Click); Controls.Add(_Button); } protected override void OnInit(EventArgs e) { MyWeb = SPContext.Current.Web; MyList = MyWeb.Lists["Parametres"]; MyItem = MyList.GetItemById(1); MyControlMode = SPControlMode.Edit; } protected override void OnPreRender(EventArgs e) { CreateChildControls(); base.EnsureChildControls(); SPField MyField = MyItem.Fields["FFT close"]; TableRow row = new TableRow(); TableCell cell1 = new TableCell(); cell1.CssClass = "ms-formlabel"; cell1.Text = _string;//"test"; //MyField.Title; row.Cells.Add(cell1); TableCell cell2 = new TableCell(); cell2.CssClass = "ms-formbody"; Control cntrl = SharePointWebControls.GetSharePointControls(MyField, MyList, MyItem, MyControlMode); if (cntrl != null) { cell2.Controls.Add(cntrl); row.Cells.Add(cell2); _Table.Rows.Add(row); } _Table.Rows.Add(row); } protected override void Render(HtmlTextWriter writer) { writer.Write(_PageNumber.ToString()); _Table.RenderControl(writer); _Button.RenderControl(writer); } void _Button_Click(object sender, ImageClickEventArgs e) { _PageNumber++; MyWeb.AllowUnsafeUpdates = true; _PageNumber += _Table.Rows.Count; foreach (TableRow row in _Table.Rows) { foreach (TableCell cell in row.Cells) { foreach (Control cntrl in cell.Controls) { // ne passe pas par ce bout de code, pas de ligne après le post back TextField cntrl2 = (TextField)cntrl; cntrl2.UpdateFieldValueInItem(); } } } //MyItem.Update(); MyWeb.AllowUnsafeUpdates = false; } } }
J'ai pas vraiment d'idée sur l'origine du problème donc si quelqu'un à déjà utiliser des TextField ou fait des webparts d'édition je suis preneur de toute idée ou bout de code.
Merci d'avance.
Partager