7
votes

ASP.NET BLANCEMENT INTEGER AUX CASSALES Cocherie Cocherie

J'ai un modèle d'élément ListView suivant, dans lequel j'essaie de lier la valeur entière à cochée Propriété de la case à cocher.

isuploaded La valeur ne contient que 0 et 1 ... xxx

mais asp.net se plaint que

Détails d'exception: System.InvalidcastException: La distribution sépadif n'est pas valide

même si le code suivant en utilisant dataxier.eval () fonctionne,
J'ai besoin d'une liaison à deux voies, donc besoin d'utiliser Bind () . xxx

Comment puis-je convertir 0 et 1 à booléen à l'aide de Bind () ?


[réponse] J'ai prolongé de type généré automatiquement via une classe partielle en ajoutant une nouvelle propriété mentionnée dans le Réponse de Justin


7 commentaires

Fabriquez-vous un "isuploaded" un peu ou un autre type de données booléen au lieu d'une option INT?


@kscott: "isuploaded" est un peu.


Quel genre de données de données vous lierez-vous? Relialisation d'une case à cocher à un peu à l'aide d'un objetDatasource pointant vers un adaptateur de table fonctionne sans erreur pour moi.


@kscott: C'est un type généré automatiquement du cadre d'entité.


Je ne sais pas pourquoi je ne peux pas uppoter. Quoi qu'il en soit, désolé de ne pas pouvoir voter toutes les grandes réponses ici. Il dit que je ne peux pas uppouver que si les réponses sont éditées ??? ...


hmmmm, bizarre. Cela n'a pas beaucoup de sens. Je serais heureux de modifier ma réponse si cela ouvre un torrent des votes. :-)


@Justin: Merci d'édition. J'ai pu uploter.


6 Réponses :


3
votes

Que diriez-vous d'ajouter une propriété à votre classe qui fait la conversion?

public bool IsUploadedBool
{
  get { return IsUploaded == 1; }
}


1 commentaires

@marc_s: Vous vouliez dire double "==" pas "=" :)



2
votes

type d'un travail ringard autour serait d'utiliser une liste déroulante avec des éléments de liste pour donner le même effet:

<asp:DropDownList ID="ddlBool" runat="server" SelectedValue= '<%# Bind("IsUploaded") %>'>
    <asp:ListItem Text="True" Value="1" />
    <asp:ListItem Text="False" Value="0" />
</asp:DropDownList>


2 commentaires

Désolé Scott Mais je dois m'en tenir à la "case à cocher" pour mon cas particulier. Mais merci de me donner un aperçu de cela.


@kscott: Seriez-vous capable de changer votre réponse? (Ajoutez un point ou etc.) afin que je puisse uppouver votre réponse? J'envisage que votre réponse soit une option valide pour mon cas. Merci.



7
votes

Si vous êtes prêt à changer de classe, ajoutez une propriété sur la classe qui est un booléen xxx

sinon, vous pouvez avoir du succès avec un typeconverter:

  1. Créez une personnalité Typonverter qui gérera 0 et 1 à des conversions booléennes
  2. Stick the tyconverterattribute sur la propriété isuploaded à Direct .Net sur votre tyconverter personnalisé.

0 commentaires


1
votes

Que diriez-vous (BTW I Utilisation d'une procédure stockée)

page ASPX xxx

code derrière xxx


0 commentaires

0
votes

Solution:

Bonjour, j'utilise également la note Ajax à l'intérieur d'une grille et j'ai rencontré ce problème. Après avoir examiné plusieurs forums, j'ai essayé cela et cela a fonctionné pour moi. J'espère que cela vous aide: xxx

retourne un entier, car vous utilisez vérifié qui est un entier.


0 commentaires