Catégorie : .NET

VB.NET – Extension

<Extension()>
Public Function GetValue(ByVal p_dr As DataRow, ByVal p_nom As String) As Object
Return If(p_dr.Table.Columns.Contains(p_nom), p_dr(p_nom), «  »)
End Function

<Extension()>
Public Function SQLReplace(ByVal pValue As String) As String
Return pValue.Replace(« ‘ »,  » » »)
End Function

<Extension()>
Public Function retourneInteger(ByVal pValue As String) As Integer
Dim retour As Integer = -1

If IsNumeric(pValue) Then
retour = CInt(pValue)
ElseIf pValue = String.Empty Then
retour = -1
End If

Return retour

End Function

<Extension()>
Public Function retourneIntegerZero(ByVal pValue As String) As Integer
Dim retour As Integer = 0

If IsNumeric(pValue) Then
retour = CInt(pValue)
ElseIf pValue = String.Empty Then
retour = 0
End If

Return retour

End Function
<Extension()>
Public Function retourneBoolean(ByVal pValue As String) As Integer
Dim retour As Boolean = False

If pValue = « 1 » Then
retour = True
End If
Return retour

End Function

<Extension()>
Public Function retourneDateTime(ByVal pValue As String) As DateTime
Dim retour As DateTime = DateTime.MinValue

If pValue <> String.Empty Then
retour = pValue
End If

Return retour

End Function

Publicités

VB.NET – Recherche d’un contrôle dans une page ou un autre contrôle en récursif

‘ Recherche un controle dans une page
Public Function RechercheControleRecursif(ByVal p_control As Control, ByVal id As String) As Control
If p_control.ID = id Then
Return p_control
End If

For Each c As Control In p_control.Controls
Dim t As Control = RechercheControleRecursif(c, id)

If t IsNot Nothing Then
Return t
End If
Next

Return Nothing
End Function

ASP.NET – DataList / Repeater imbriqué

Pour gérer la source de données d’un datalist ou repeater se trouvant dans un autre datalist ou repeater :

<asp:DataList ID= »dlQuestions » runat= »server » OnItemDataBound= »DlQuestions_ItemDataBound » Style= »width: 100%; »>
<ItemTemplate>
<table style= »border: 1px solid black; width: 100%; column-span: none; »>
<tr>
<td style= »width: 70%; »>
<%# DataBinder.Eval(Container.DataItem, « Id ») %>
<%# DataBinder.Eval(Container.DataItem, « question ») %>
</td>
<td>
<asp:DataList ID= »dlReponses » runat= »server » OnItemDataBound= »DlQuestions_ItemDataBound » Style= »width: 100%; »>
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, « reponeses ») %>
</ItemTemplate>
</asp:DataList>
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>

 

Code behind : 

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

DlQuestions.DataSource = Questions
DlQuestions.DataBind()

End Sub

Protected Sub DlQuestions_ItemDataBound(sender As Object, e As DataListItemEventArgs)
If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then
Dim question_id As Integer = CType(e.Item.DataItem, ClasseQuestions).Id ‘

Dim DlReponses As DataList = CType(e.Item.FindControl(« DlReponses »), DataList) ‘ Recherche Du datalist pour remplir les réponses
DlReponses.DataSource = New ClsEnquete_Int_Reponse().Charger_reponses_par_question_id(question_id)
DlReponses.DataBind()

End Sub

 

VB.NET – Assigner une chaine de caractère / string à une enumération

Private p_type_reponse As type_reponses

Public Property Type_Reponse As type_reponses
Get
Return p_type_reponse
End Get
Set(value As type_reponses)
p_type_reponse = value
End Set
End Property

Public Enum type_reponses
CHECKBOX
RADIOBUTTON
TEXTE
End Enum

Assigner à type_reponse qui est de type enum une chaine string :

Type_Reponse = DirectCast([Enum].Parse(GetType(type_reponses), dt.Rows(0)(« eir_type »).ToString), type_reponses)

ASP.NET / Ajax – Appel asynchrone depuis javascript

Pré-requis : 

Mettre <scriptmanager> avec EnablePageMethods = true

Javascript : 

function appel() {
var retour = PageMethods.LigneEnableDisable(‘valeur1’,OnSuccess, OnFailure);
};

function OnSuccess(result) {
if(result)
{
alert(« c’est  » + result);
}
}
function OnFailure(error) {

}

Code behind : 

<System.Web.Services.WebMethod>
Public Shared Function LigneEnableDisable(ByVal fieldVal1 As String) As String
Return « ok »
End Function

ASP.NET – RadioButton dynamique – Postback ne fonctionne pas ou fonctione après un premier postback

Si le postback ne se fait pas, c’est surement parce qu’il y a une valeur à la propriété Check.

Dans mon cas j’ai utilisé le RadioButtonList car impossible d’affecté de nouvelle valeur au radioButton si une à déjà été affecté.

Exemple :

J’ai ajouté des propriétés pour pouvoir différencier mes radio.

RadioButtonListCustom rb = new Controles.RadioButtonListCustom();

rb.AutoPostBack = true;
rb.EnableViewState = false;
ListItem li = new ListItem(« &nbsp; » + dr[« s_rep_libelle »].ToString());
li.Attributes.Add(« Id », dr[« id »].ToString());

rb.Items.Add(li);
rb.SelectedIndexChanged += Rb_SelectedIndexChanged;

 

Fonction SelectIndex : 

Controles.RadioButtonListCustom rbl = (Controles.RadioButtonListCustom)sender;
int id = rbl.SelectedItem.Attributes[« Id »].ToString().retourneInt();

ASP.NET – Executer un traitement à la fermeture de la fenêtre du navigateur en Ajax et asp.net

 

Script Ajax qui va appler notre page contenant la méthode « MAJ » : 

function sauvegarde() {

var temps = document.getElementById(« lbCompteur »).innerText;
$.ajax(
{
url: « /fermeture_chrono.aspx/MAJ »,
contentType: « application/json; charset=utf-8 »,
dataType: « json »,
type: « POST »,
data: ‘{p_temps: « ‘ + temps + ‘ » }’
}
);
}

Appel de la fonction à la fermeture de la fenêtre : 

<body onbeforeunload= »sauvegarde(); »>

Notre page code-behind qui va faire notre traitement : 

[System.Web.Services.WebMethod]
public static void MAJ(string p_temps)
{

}

 

ASP.NET – Accéder à un contrôle dans la master page

Création du contrôle :

Site1.Master : 

Site1.Master.vb :

private Label lbCompteur = new Label() ;

public Label LbCompteur { get => lbCompteur; set => lbCompteur = value; }

protected void Page_Load(object sender, EventArgs e)
{
divCompteur.Controls.Add(lbCompteur);

}

Page où doit-être appelé le contrôle : 

Ajouter la balise suivante dans la page asp :

<%@ MasterType VirtualPath= »~/Site1.Master » %>

Code behind :

protected void Page_Load(object sender, EventArgs e)
{

this.Master.LbCompteur.Text = « test »;

}