web:asp.net:telerik:toc
Table des matières
RadComboBox
Events
protected void RadComboBox1_PreRender(object sender, EventArgs e) {} protected void RadComboBox1_ItemDataBound(object source, RadComboBoxItemEventArgs e) {} protected void RadComboBox1_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e) {}
Liste déroulante avec crochets
Définir un modèle d'item (<ItemTemplate>
) dans le RadComboBox
:
<ItemTemplate> <div> <asp:CheckBox ID="cbChecked" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Description") %>' /> </div> </ItemTemplate>
Appliquer une source de données qui a une colonne pour :
- Les valeurs (probablement les Ids) (
int
); - Le texte (
string
); - Si coché ou non (
boolean
), colonne qui s'appellechk
.
/// <summary> /// Applique les crochets aux boites à cocher lorsque indiqué. /// </summary> protected void comboBox1_ItemDataBound(object sender, RadComboBoxItemEventArgs e) { RadComboBoxItem comboItem = (RadComboBoxItem)e.Item; CheckBox chkbx = (CheckBox)comboItem.FindControl("cbChecked"); chkbx.Checked = bool.Parse(DataBinder.Eval(e.Item.DataItem, "chk").ToString()); }
RadGrid
Code ASPX de base
<telerik:RadGrid ID="radGrid" runat="server" GridLines="None" OnNeedDataSource="radGrid_NeedDataSource" AutoGenerateColumns="false" OnItemCreated="radGrid_ItemCreated" OnInsertCommand="radGrid_InsertCommand" OnDeleteCommand="radGrid_DeleteCommand" OnUpdateCommand="radGrid_UpdateCommand"> <MasterTableView DataKeyNames="IdEnregistrement,IdSubColumn" AllowMultiColumnSorting="True" Width="50%" EditMode="InPlace" CommandItemDisplay="Top" InsertItemDisplay="Bottom"> <CommandItemSettings AddNewRecordText="Ajouter un enregistrement" RefreshText="Rafraîchir" /> <Columns> <telerik:GridTemplateColumn UniqueName="Row1" HeaderText="Row1" ItemStyle-Width="150px" > <ItemTemplate> <%#DataBinder.Eval(Container.DataItem, "Row1")%> </ItemTemplate> <EditItemTemplate> <asp:Label ID="lblRow1" runat="server" Text="Label"></asp:Label> <telerik:RadComboBox ID="cbxRow1" runat="server" Width="150px" ></telerik:RadComboBox> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridCheckBoxColumn UniqueName="Row2" HeaderText="Row2" DataField="indic_Row2" ItemStyle-Width="40px"> </telerik:GridCheckBoxColumn> <telerik:GridTemplateColumn UniqueName="Row3" HeaderText="Row3" ItemStyle-Width="100px"> <ItemTemplate> <%#DataBinder.Eval(Container.DataItem, "Row3")%> </ItemTemplate> <EditItemTemplate> <telerik:RadTextBox ID="tbxRow3" runat="server" Width="75px" MaxLength="6"> </telerik:RadTextBox> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn" HeaderStyle-Width="45px" EditText="Éditer" CancelText="Annuler" UpdateText="Confirmer" InsertText="Insérer" > <ItemStyle CssClass="MyImageButton" /> </telerik:GridEditCommandColumn> <telerik:GridButtonColumn ConfirmText="Supprimer cet enregistrement ?" ConfirmDialogType="RadWindow" HeaderStyle-Width="25px" ConfirmTitle="Delete" ButtonType="ImageButton" CommandName="Delete" Text="Supprimer" UniqueName="DeleteColumn"> <ItemStyle HorizontalAlign="Center" CssClass="MyImageButton" /> </telerik:GridButtonColumn> </Columns> <NoRecordsTemplate>Aucun enregistrement à afficher.</NoRecordsTemplate> </MasterTableView> <ClientSettings> <ClientEvents OnRowDblClick="RowDblClick" /> </ClientSettings> </telerik:RadGrid>
Events
protected void RadGrid1_NeedDataSource(object source, GridNeedDataSourceEventArgs e) {} protected void RadGrid1_ItemEvent(object sender, GridItemEventArgs e) {} protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e) {} protected void RadGrid1_UpdateCommand(object source, GridCommandEventArgs e) {} protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e) {}
Ajouter un bouton d'édition
<telerik:GridEditCommandColumn EditText="Editer"></telerik:GridEditCommandColumn>
Ajouter un lien avec données plus Id
<telerik:GridTemplateColumn> <ItemTemplate> <asp:HyperLink runat="server" ID="HyperLink1" Text='<%# Eval("FullName") %>' NavigateUrl='<%# "edit.aspx?id=" + Eval("Id") %>' ></asp:HyperLink> </ItemTemplate> </telerik:GridTemplateColumn>
Exemple de méthode ItemCreated
protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e) { if (e.Item.ItemType == GridItemType.EditItem && e.Item.ItemType == GridItemType.Item) { GridDataItem item = (GridDataItem) e.Item; int currentId = Convert.ToInt32(item.KeyValues.Substring(10,1)); RadComboBox cbxRoles = (RadComboBox)item.FindControl("RadComboBox1"); } }
Exemple de méthode NeedDataSource
protected void RadGrid1_NeedDataSource(object source, GridNeedDataSourceEventArgs e) { CustomDataContext db = new CustomDataContext(); var query = from em in bd.Employees select new { em.FirstName, em.LastName }; RadGrid1.DataSource = query; }
Ne pas oublier d'ajouter la référence using Telerik.Web.UI;
.
Accès au contrôle de l'item
CheckBox checkbox = editedItem["nom_du_checkbox"].Controls[0];
Accès aux boutons Insert, Update, Cancel
Voici un exemple d'utilisation dans la méthode ItemCreated()
de la grille.
GridDataInsertItem editForm = (GridDataInsertItem)e.Item; ImageButton insertButton = (ImageButton)editForm.FindControl("PerformInsertButton"); ImageButton updateButton = (ImageButton)editForm.FindControl("UpdateButton"); insertButton.Visible = false; e.Canceled = true; e.Item.FireCommandEvent("Cancel", e);
Quand les boutons sont plutôt des liens :
LinkButton cancelButton = (LinkButton)e.Item.FindControl("CancelButton");
Modifications de texte
Boutons de commande
<MasterTableView DataKeyNames="IdAcces" AllowMultiColumnSorting="True" Width="100%" EditMode="InPlace" CommandItemDisplay="Top"> <CommandItemSettings AddNewRecordText="Ajouter un accès" RefreshText="Rafraîchir" /> <Columns>
Aucun enregistrement
</Columns> <NoRecordsTemplate>Aucun enregistrement disponible.</NoRecordsTemplate> </MasterTableView>
Pagination
<PagerStyle PagerTextFormat="Changer la page: {4} | Affiche la page {0} de {1}, éléments {2} à {3} de {5}" PageSizeLabelText="Nombre par page" FirstPageText="Première page" FirstPageToolTip="Première page" PrevPageText="Page précédente" PrevPagesToolTip="Page précédente" NextPageText="Page suivante" NextPagesToolTip="Page suivante" LastPageText="Dernière page" LastPageToolTip="Dernière page" />
Colonnes de commande (Éditer et supprimer)
<telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn" HeaderStyle-Width="45px" EditText="Éditer" CancelText="Annuler" UpdateText="Confirmer" InsertText="Insérer" > <ItemStyle CssClass="MyImageButton" /> </telerik:GridEditCommandColumn> <telerik:GridButtonColumn ConfirmText="Supprimer l'accès ?" ConfirmDialogType="RadWindow" HeaderStyle-Width="25px" ConfirmTitle="Delete" ButtonType="ImageButton" CommandName="Delete" Text="Supprimer" UniqueName="DeleteColumn"> <ItemStyle HorizontalAlign="Center" CssClass="MyImageButton" /> </telerik:GridButtonColumn>
Commande personnalisée
<telerik:GridButtonColumn HeaderStyle-Width="25px" ButtonType="PushButton" CommandName="Accepter" Text="Accepter" UniqueName="AccepterColumn" > </telerik:GridButtonColumn>
protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e) { if (e.CommandName == "Accepter") { GridDataItem item = (GridDataItem)e.Item; int id = GetIdItem(item.KeyValues); // ... } }
DataKeyName
protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e) { if (e.CommandName == "Ajouter") { GridDataItem item = (GridDataItem)e.Item; List<int> Idlist = GetDataKeyIdList(item.KeyValues, "EmployeeIds"); } }
/// <summary> /// Obtient la liste des Id selon la clé fournie. /// </summary> /// <param name="keyvalues">Toutes les valeurs du dataKey</param> /// <param name="key">Clé voulue</param> /// <returns>Une liste de Ids.</returns> private List<int> GetDataKeyIdList(string keyvalues, string key) { List<int> valueList = new List<int>(); if (keyvalues.Contains(key)) { int start = keyvalues.IndexOf(key) + key.Length + 2; // 2 est :" int end = keyvalues.IndexOf('"', start); string values = keyvalues.Substring(start,end-start); // On extrait les Ids de KeyValues string[] IdExtract = values.Split(','); foreach (string id in IdExtract) { valueList.Add(Convert.ToInt32(id)); } } return valueList; } /// <summary> /// Obtient une valeur booléenne selon la clé fournie. /// </summary> /// <param name="keyvalues">Toutes les valeurs du dataKey</param> /// <param name="key">Clé voulue</param> /// <returns>La valeur booléenne.</returns> private bool GetDataKeyBoolean(string keyvalues, string key) { bool value=false; if (keyvalues.Contains(key)) { int start = keyvalues.IndexOf(key) + key.Length + 2; // 2 est :" int end = keyvalues.IndexOf('"', start); string values = keyvalues.Substring(start, end - start); value = Convert.ToBoolean(values); } return value; }
Ressources
RadAjaxManager
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server />
protected void Page_Load(object sender, EventArgs e) { RadAjaxManager1.Alert("PageLoad"); }
RadUpload
Insérer un fichier
Code pour insérer les données d'un fichier téléchargé à l'aide de LINQ. L'objet file
est de type Telerik.Web.UI.UploadedFile
.
foreach (UploadedFile file in ruUpload.UploadedFiles) { byte[] file_byte = new byte[file.InputStream.Length]; file.InputStream.Read(file_byte, 0, file.ContentLength); System.Data.Linq.Binary file_binary = new System.Data.Linq.Binary(file_byte); Fichier fichier = new Fichier // objet qui a une représentation dans la BD { donnees = file_binary, nomFichier = file.GetName() }; db.Fichier.InsertOnSubmit(sa); db.SubmitChanges(); }
Récupérer le fichier
Fichier fichier = null; using (CustomDataContext db = new CustomDataContext()) { fichier = db.Fichier.Single(f => f.Id == id); } FileInfo file = new FileInfo(fichier.nomFichier); context.Response.ContentType = GetContentType(file.Extension); context.Response.AddHeader("Content-Disposition", " filename=" + fichier.nomFichier); context.Response.AddHeader("Content-Length", attachment.Data.Length.ToString()); context.Response.BinaryWrite(fichier.donnees.ToArray()); context.Response.Flush();
private string GetContentType(string fileExtension) { switch (fileExtension) { case ".jpg": case ".jpeg": return "image/jpeg"; case ".docx": return "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; case ".doc": return "application/msword"; case ".xlsx": return "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; case ".xls": return "application/vnd.ms-excel"; case ".gif": return "image/gif"; case ".png": return "image/png"; case ".bmp": return "image/bmp"; case ".pdf": return "application/pdf"; default: return "application/octet-stream"; } }
web/asp.net/telerik/toc.txt · Dernière modification : 2022/02/02 00:42 de 127.0.0.1