0
在我最後一年的項目我使用的是的GridView使用的ObjectDataSource控件顯示數據庫中的數據。 我的ObjectDataSource與適當的鏈接「選擇」,「更新」,「刪除」作爲N層應用程序的一部分的功能。不能在「編輯」模式時,更新的GridView領域,ASP驗證防止更新
我已經測試了我的所有功能,並且它們運行良好。
但是,當在「編輯」模式的GridView我無法更新我的領域......但我可以很好地刪除行。
有什麼建議嗎?
謝謝!
UPDATE:問題是我的ASP客戶端驗證被阻止我在「編輯」模式提交更新的領域。 我已將它們添加到代碼中。
部分代碼:
<form id="form1" runat="server">
<div>
<asp:ObjectDataSource ID="BeersObjectDataSource" runat="server"
DeleteMethod="DeleteBeer_BLL"
SelectMethod="RetrieveBeers_BLL"
UpdateMethod="UpdateBeer_BLL"
TypeName="BLL" >
<DeleteParameters>
<asp:Parameter Name="id" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="id" Type="Int32" />
<asp:Parameter Name="name" Type="String" />
<asp:Parameter Name="country" Type="String" />
<asp:Parameter Name="logoPath" Type="String" />
</UpdateParameters>
</asp:ObjectDataSource>
</div>
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
AllowSorting="True" AutoGenerateColumns="False"
DataSourceID="BeersObjectDataSource" PageSize="7"
onrowdeleted="GridView1_RowDeleted" onrowupdated="GridView1_RowUpdated" DataKeyNames="id">
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
<asp:BoundField DataField="id" HeaderText="ID"
ReadOnly="True" SortExpression="id" />
<asp:BoundField DataField="name" HeaderText="Beer Name" SortExpression="name" />
<asp:BoundField DataField="country" HeaderText="Beer Country"
SortExpression="country" />
<asp:BoundField DataField="logoPath" HeaderText="Image Path"
SortExpression="logoPath" ReadOnly="True" />
<asp:ImageField DataImageUrlField="logoPath" DataImageUrlFormatString="~/{0}"
HeaderText="Logo Preview" NullDisplayText="No image"
NullImageUrl="~/images/logobeers/no-photo.jpg"
SortExpression="logoPath" ReadOnly="True">
<ControlStyle Height="100px" Width="100px" />
</asp:ImageField>
</Columns>
</asp:GridView>
<br />
<br />
<asp:TextBox ID="TextBoxBeerName" runat="server">Beer Name</asp:TextBox>
<asp:CustomValidator ID="CustomValidator1" runat="server"
ControlToValidate="TextBoxBeerName" Display="Dynamic"
ErrorMessage="*"
onservervalidate="CustomValidator1_ServerValidate" SetFocusOnError="True"
ForeColor="Red"></asp:CustomValidator>
<asp:TextBox ID="TextBoxBeerCountry" runat="server">Beer Country</asp:TextBox>
<asp:CustomValidator ID="CustomValidator2" runat="server"
ControlToValidate="TextBoxBeerCountry" Display="Dynamic"
ErrorMessage="*"
onservervalidate="CustomValidator2_ServerValidate" SetFocusOnError="True"
ForeColor="Red"></asp:CustomValidator>
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="Button1" runat="server" Text="Upload to DataBase"
onclick="Button1_Click" />
<asp:Label ID="uploadStatusLabel" runat="server" Enabled="false"></asp:Label>
</form>
部分代碼背後:
protected void Page_Load(object sender, EventArgs e)
{
}
protected void GridView1_RowUpdated(object sender, GridViewUpdatedEventArgs e)
{
GridView1.DataBind();
}
protected void GridView1_RowDeleted(object sender, GridViewDeletedEventArgs e)
{
GridView1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
if (IsValid == true)
{ /* SOME CODE ..... */ }
}
檢查'UpdateBeer_BLL'方法。 – afzalulh
@afzalulh我仔細檢查了我的方法,問題不是來自它,而是來自驗證器(請參閱我編輯的文章)。謝謝! – Yaniv