我有一個簡單的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