我有一个简单的gridview(它现在)它填充,我可以编辑它。但是当涉及到更新时,我只是无法让它工作。更新gridview总是返回空参数
下面的代码创建一个GridView其搜索用户的名称以“C”开头的(我的滤波部分那我剥离出来)
问题是,当我点击更新按钮不会更新。存储过程被调用,但传递给它的所有参数都为null。因此数据库不会更新。
我知道它是一个简单的问题,但我只是看不到它。
我尝试在onupdating事件中使用ExtractValuesFromCell
,但仍然只有空值。我不得不添加CausesValidation="false"
,因为没有它,更新事件甚至没有被调用。
任何和所有帮助表示赞赏
<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>
在代码隐藏唯一的代码是
protected void SqlDataSource3_Updating(object sender, SqlDataSourceCommandEventArgs e)
{
}
正是在那里,所以我可以在一个断点下降,检查参数,这都在那里但空值
您可以发布您更新的存储过程 – 2009-12-16 12:56:58
内容看看本教程中,也许你已经错过了一些东西: http://www.asp.net/(S(pdfrohu0ajmwt445fanvj2r3)) /learn/data-access/tutorial-49-vb.aspx – 2009-12-16 12:58:40
谢谢托尼。我已经从该链接下载了样本。这是一个很好的资源,我只希望早些时候发现它的一些设计决定可能会有所不同。 – DeveloperChris 2009-12-17 09:14:04