Cześć,
Mam projekcik i w którym mam problem z odświeżaniem danych w kontrolce GridView.
W bazie dane się aktualizują, ale w kontrolce nie. Nawet jak wyłączę przeglądarkę i uruchomię stronkę jeszcze raz. Dopiero po ponownym odpaleniu web developera dane w GridView są zaktualizowane.
Kod stronki wygląda tak:
<asp:GridView ID="grdGroups" runat="server" DataSourceID="dsGroups"
AllowPaging="false" DataKeyNames="Id"
AutoGenerateColumns="false"
AutoGenerateSelectButton="true"
AutoGenerateEditButton="true"
AutoGenerateDeleteButton="true">
<Columns>
<asp:BoundField DataField="Id" HeaderText="Id" ReadOnly="true"/>
<asp:BoundField DataField="Name" HeaderText="Nazwa" />
</Columns>
<PagerSettings Mode="Numeric" />
</asp:GridView>
<asp:ObjectDataSource ID="dsGroups" runat="server" EnableCaching="false"
TypeName="FourLayer.ApplicationLogic.GroupLogic"
SelectMethod="GetAllGroups"
UpdateMethod="UpdateGroup"
InsertMethod="InsertGroup"
DeleteMethod="DeleteGroup"
DataObjectTypeName="FourLayer.BusinessEntity.ProductGroup"/>
Kod logiki aplikacji
Klasa "GroupLogic"
public static void UpdateGroup(ProductGroup group)
{
ProductGroupDAO dao = new ProductGroupDAO();
dao.Update(group);
}
Kod dostępu do danych
Klasa "ProductGroupDAO"
public override void Update(ProductGroup group)
{
string sql = "UPDATE ProductGroup SET GroupName=@GroupName";
sql += " WHERE GroupId=@GroupId;";
// utwórz tablicę parametrów
DbParameter[] parameters = new DbParameter[] {
DatabaseActions.MakeParameter("@GroupId", group.Id, DbType.Int32),
DatabaseActions.MakeParameter("@GroupName", group.Name, DbType.String)
};
// uruchom określoną instrukcję
DatabaseActions.RunNonQuery(sql, parameters);
}
Po drodze tam jeszcze jest klasa ProductGroup która hermetyzuje dane dla grupy, ale kodu chyba nie muszę wklejać?
Sorki może to banalne pytanie ale nie jestem biegły w ASP.NET :)
Co tutaj może być nie tak? Jak zrobić aby dane się odświeżały?
edit:
Dodam jeszcze, że jeżeli usuwam wiersz to gridview aktualizuje się automatycznie.