J'ai un simple gridview (bon c'est maintenant) il peuple, je peux l'éditer. mais quand il s'agit de mise à jour, je ne peux tout simplement pas le faire fonctionner.mettre à jour un gridview retourne toujours des paramètres null
Le code suivant crée un gridview qui recherche pour les utilisateurs dont le nom commence par un « c » (qu'est à dire une partie de mon filtrage j'épiler)
Le problème est quand je clique sur le bouton de mise à jour, il ne sera pas mise à jour . La procédure stockée est appelée mais tous les paramètres qui lui sont passés sont null. par conséquent, la base de données n'est pas mise à jour.
Je sais que c'est un problème simple avec une solution simple, mais je ne peux pas le voir.
J'ai essayé d'utiliser ExtractValuesFromCell
dans l'événement onupdating et j'ai toujours obtenu des valeurs nulles. Je devais ajouter le CausesValidation="false"
car sans cela les événements de mise à jour n'étaient même pas appelés.
Toute aide est appréciée
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
AutoGenerateColumns="False" DataSourceID="SqlDataSource3"
DataKeyNames="UserId">
<Columns>
<asp:CommandField ShowEditButton="True" CausesValidation="false" />
<asp:BoundField DataField="UserName" HeaderText="UserName"
SortExpression="UserName" />
<asp:BoundField DataField="MobileAlias" HeaderText="MobileAlias"
SortExpression="MobileAlias" />
<asp:BoundField DataField="DistrictId" HeaderText="DistrictId"
SortExpression="DistrictId" />
<asp:BoundField ReadOnly="true" DataField="UserId" HeaderText="UserId"
SortExpression="UserId" />
</Columns>
</asp:GridView> <asp:SqlDataSource ID="SqlDataSource3" runat="server"
ConnectionString="<%$ ConnectionStrings:REMConnectionString_development_dev %>"
SelectCommand="LoadUser" SelectCommandType="StoredProcedure"
UpdateCommand="UpdateUser" UpdateCommandType="StoredProcedure"
onupdating="SqlDataSource3_Updating">
<SelectParameters>
<asp:Parameter DefaultValue="c" Name="UserName" Type="String" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="UserId" Type="String" />
<asp:Parameter Name="DistrictID" Type="Int32" />
<asp:Parameter Name="UserName" Type="String" />
<asp:Parameter Name="MobileAlias" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>
le seul code dans le code-behind est
protected void SqlDataSource3_Updating(object sender, SqlDataSourceCommandEventArgs e)
{
}
Il est là pour que je puisse déposer dans un point d'arrêt et vérifiez les paramètres, qui sont tous là mais avec des valeurs nulles
vous pouvez poster le contenu de votre mise à jour procédure stockée –
ont un coup d'oeil à ce tutoriel, vous avez peut-être manqué quelque chose: http://www.asp.net/(S(pdfrohu0ajmwt445fanvj2r3)) /learn/data-access/tutorial-49-vb.aspx –
Merci Tony. J'avais déjà téléchargé les échantillons de ce lien. C'est une excellente ressource et je souhaite seulement que je l'ai trouvé beaucoup plus tôt certaines des décisions de conception que j'ai prises ont pu être différentes. – DeveloperChris