|
Fournitures Consommées Gpl Condi ( Charge Butane ) la List des compte comptes analytique correspondante à ce compte de charge sera affiché comme ça :
Cette vue de liste de compte analytique est une vue partielle et voilà le code sa méthode sur le Controller :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| public PartialViewResult ListComptAnalByComptChrg(int? idComptChrg){
List<CompteAnalytiqueViewModels> comptAnalVMs = (from ca in db.COMPTE_ANALYTIQUE
from caAffectDom in ca.CA_AFFECTATION_DOM
from ccAffectCa in caAffectDom.CC_AFFECTATION_CA
where(ccAffectCa.ID_COMPT_CHRG == idComptChrg)
select new CompteAnalytiqueViewModels
{
id_ComptAnal = (int)caAffectDom.COMPTE_ANALYTIQUE.ID_COMPT_ANAL,
ComptAnal = caAffectDom.COMPTE_ANALYTIQUE.COMPT_ANAL,
Designation = caAffectDom.COMPTE_ANALYTIQUE.DESI_COMPT_ANAL,
Domaine = caAffectDom.DOMAINE.DESI_DOM,
ComptSCF = ccAffectCa.COMPTE_CHARGE_AVEC_CA.COMPT_SCF
}).ToList();
return PartialView(comptAnalVMs);
} |
Et la vue comme se suite :
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
|
@model IEnumerable<GestionDRA.ViewModels.CompteAnalytiqueViewModels>
<script src="~/Scripts/jquery-2.2.3.min.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<p>
@Ajax.ActionLink("Create New", "CreateCompteAnalByChrg", new { idComptChrg = Request.QueryString["idComptChrg"] },
new AjaxOptions {
/*HttpMethod="GET",*/
UpdateTargetId="divComptAnal",
InsertionMode=InsertionMode.Replace
})
</p>
<div id ="divComptAnal">
<table id ="TComptAnal">
<tr>
<th>
@Html.DisplayNameFor(model => model.id_ComptAnal)
</th>
<th>
@Html.DisplayNameFor(model => model.ComptAnal)
</th>
<th>
@Html.DisplayNameFor(model => model.Designation)
</th>
<th>
@Html.DisplayNameFor(model => model.Domaine)
</th>
<th>
@Html.DisplayNameFor(model => model.ComptSCF)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.id_ComptAnal)
</td>
<td>
@Html.DisplayFor(modelItem => item.ComptAnal)
</td>
<td>
@Html.DisplayFor(modelItem => item.Designation)
</td>
<td>
@Html.DisplayFor(modelItem => item.Domaine)
</td>
<td>
@Html.DisplayFor(modelItem => item.ComptSCF)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) |
@Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ }) |
@Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })
</td>
</tr>
}
</table>
</div> |
maintenant je veux insérer un nouvelle affectation (compte de charge_compte analytique) en ajoutant un compte analytique affecté à un compte de charge existant en cliquant sur lien Create New
Une formulaire va être affiché :
Je tape les information nécessaires et je clique sur insérer. Je veux lors que je clique sur insérer, exécuter la redirection vers la vue partiel de liste de compte analytique affecté au compte de charge « ListComptAnalByComptChrg » avec le compte analytique inséré. mais le problème lorsque je clique sur insérer, le compte analytique est enregistré en base de données mais sans la redirection vers view partial index: « ListComptAnalByComptChrg ». j'ai besoin de votre aide et n'import quel proposition ou conseil sera la bienvenu
Voilà Sa méthode partiel view result dans le Controller :
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
| public PartialViewResult CreateCompteAnalByChrg(int? idComptChrg)
{
ViewBag.NumDomList = new SelectList(db.DOMAINE, "NUM_DOM", "DESI_DOM");
ViewBag.cptChrg = db.COMPT_CHARGE.OfType<COMPTE_CHARGE_AVEC_CA>().Single(c => c.ID_COMPT_CHRG == idComptChrg).COMPT_SCF;
return PartialView();
}
//
// POST: /GestionCompteAnalytique/Create
[HttpPost]
public PartialViewResult CreateCompteAnalByChrg([Bind(Exclude = "id_ComptAnal")]CompteAnalytiqueViewModels comptAnalVM, int? idComptChrg)
{
decimal idenCompteAnalytique;
if (ModelState.IsValid)
{
int nbreCompteAnal = db.COMPTE_ANALYTIQUE.Where(c => c.COMPT_ANAL == comptAnalVM.ComptAnal).Count();
COMPTE_ANALYTIQUE compt_analytique = new COMPTE_ANALYTIQUE
{
COMPT_ANAL = comptAnalVM.ComptAnal,
DESI_COMPT_ANAL = comptAnalVM.Designation
};
if (nbreCompteAnal == 0)
{
db.COMPTE_ANALYTIQUE.Add(compt_analytique);
CA_AFFECTATION_DOM caAffectDom = new CA_AFFECTATION_DOM
{
ID_COMPT_ANAL = compt_analytique.ID_COMPT_ANAL,
NUM_DOM = comptAnalVM.num_dom
};
db.CA_AFFECTATION_DOM.Add(caAffectDom);
idenCompteAnalytique = compt_analytique.ID_COMPT_ANAL;
}
else
{
idenCompteAnalytique = db.COMPTE_ANALYTIQUE.FirstOrDefault(ca => ca.COMPT_ANAL == comptAnalVM.ComptAnal).ID_COMPT_ANAL;//compt_analytique.ID_COMPT_ANAL,
}
comptAnalVM.Id_ComptChrg = idComptChrg;
CC_AFFECTATION_CA ccAffectCa = new CC_AFFECTATION_CA
{
ID_COMPT_ANAL = idenCompteAnalytique,//compt_analytique.ID_COMPT_ANAL,
ID_COMPT_CHRG = (decimal)comptAnalVM.Id_ComptChrg,
NUM_DOM = comptAnalVM.num_dom
};
db.CC_AFFECTATION_CA.Add(ccAffectCa);
//}
db.SaveChanges();
return PartialView("ListComptAnalByComptChrg",idComptChrg);
}
ViewBag.NumDomList = new SelectList(db.DOMAINE, "NUM_DOM", "DESI_DOM", comptAnalVM.num_dom);
return PartialView(comptAnalVM);
} |
Le code de cette vue partiel est comme suit :
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
|
@model GestionDRA.ViewModels.CompteAnalytiqueViewModels
<script src="~/Scripts/jquery-2.2.3.min.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
@using (@Ajax.BeginForm("CreateCompteAnalByChrg", "ComptChrg", new { idComptChrg = Request.QueryString["idComptChrg"] },
new AjaxOptions {
HttpMethod = "POST",
UpdateTargetId="divComptAnal",
InsertionMode = InsertionMode.Replace/*,
Url = Url.Action("ListComptAnalByComptChrg", "ComptChrg", new { idComptChrg = Request.QueryString["idComptChrg"]}) */
}))
{
@Html.ValidationSummary(true)
<div id="divComptAnal">
<fieldset>
<legend>CompteAnalytiqueViewModels</legend>
<div class="editor-label">
@Html.LabelFor(model => model.ComptAnal)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.ComptAnal)
@Html.ValidationMessageFor(model => model.ComptAnal)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Designation)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Designation)
@Html.ValidationMessageFor(model => model.Designation)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.num_dom)
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.num_dom, (SelectList)ViewBag.NumDomList, "Selectionnez Domaine d'activté")
@Html.ValidationMessageFor(model => model.num_dom)
</div>
<div class="editor-label">
@Html.HiddenFor(model => model.Id_ComptChrg)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.ComptSCF)
</div>
<div class="editor-label">
@Html.ViewBag.cptChrg
</div>
<p>
<input type="submit" value="Inserer" />
</p>
</fieldset>
</div>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div> |
|
Partager