Web窗体不更新数据
本文关键字:数据 更新 窗体 Web | 更新日期: 2023-09-27 18:00:42
我的web应用程序有两个web表单,它们使用Master Page访问SqlServer数据库中的数据表:
1-Autoridade.aspx,显示数据并搜索它们
2-Autoridade_Atualizar.aspx,用于更新lideranca 表中的数据
Autoridade.aspx有一个显示数据的GridView,并使用asp:HyperLinkField重定向到Autoridade_Atualizar.aspx:
<asp:GridView ID="gwDados" runat="server" AutoGenerateColumns="False" EmptyDataText="Não Existem Autoridades Cadastradas...">
<Columns>
<asp:BoundField DataField="id" HeaderText="ID" />
<asp:BoundField DataField="nome" HeaderText="Nome" />
<asp:BoundField DataField="partido" HeaderText="Partido" />
<asp:BoundField DataField="aliado" HeaderText="Aliado" />
<asp:BoundField DataField="cargo" HeaderText="Cargo" />
<asp:BoundField DataField="lotacao" HeaderText="Lotação" />
<asp:BoundField DataField="atuacao" HeaderText="Atuação" />
<asp:HyperLinkField DataNavigateUrlFormatString="Autoridade_Atualizar.aspx?id={0}" Text="Editar" DataNavigateUrlFields="id" />
</Columns>
</asp:GridView>
当我交换DropDownLists字段的值并单击表单的更新按钮时,不要更改gridview上的数据。
asp:Panel runat="server" ID="pnlUpdate" Visible="true">
<h1>Atualizar Autoridade</h1>
<ul>
<li>
<asp:Label ID="CodAutoridade" runat="server" Text="Cód. Autoridade"></asp:Label>
<asp:TextBox ID="tbCodAutoridade" Text="2013" Enabled="false" CssClass="radiusInput disable" runat="server" Width="546px"></asp:TextBox>
</li>
<li>
<asp:Label Text="Nome" ID="label1" runat="server" Width="88px"></asp:Label>
<asp:TextBox ID="tbNome" Text="" CssClass="radiusInput" runat="server" Width="654px" Height="16px"></asp:TextBox>
</li>
<li>
<asp:Label ID="Cargo" runat="server" Text="Cargo"></asp:Label>
<asp:DropDownList ID="ddlcargo" DataTextField="carg_cargo" DataValueField="carg_cd_cargo" CssClass="radiusInput" runat="server" Width="454px"></asp:DropDownList>
</li>
<li>
<asp:Label ID="Partido" runat="server" Text="Partido"></asp:Label>
<asp:DropDownList ID="ddlpartido" DataTextField="part_sigla" DataValueField="part_cd_partido" CssClass="radiusInput" runat="server" Width="254px"></asp:DropDownList>
</li>
<li>
下面是我的C#代码:
protected void bntAtualizar_Click(object sender, EventArgs e)
{
this.OnUpdate();
}
private void OnUpdate()
{
mdc = new ModelDataContext();
try
{
lid_lideranca lideranca = mdc.lid_liderancas.First(aut => aut.lid_cd_lideranca == int.Parse(tbCodAutoridade.Text.Trim()));
tbNome.Text = lideranca.lid_nome;
ddlcargo.SelectedIndex = ddlcargo.Items.IndexOf(ddlcargo.Items.FindByText(lideranca.lid_cd_partido.ToString()));
ddlpartido.SelectedIndex = ddlpartido.Items.IndexOf(ddlpartido.Items.FindByText(lideranca.lid_cd_partido.ToString()));
tbDescricao.Text = lideranca.lid_cargo2;
tbemail.Text = lideranca.lid_email;
tbfacebook.Text = lideranca.lid_facebook;
tbtwitter.Text = lideranca.lid_twitter;
tbendercomercial.Text = lideranca.lid_endereco_comercial;
tbenderesidencial.Text = lideranca.lid_endereco_residencial;
tbfonecelular.Text = lideranca.lid_fone_celular;
tbfoneresidencial.Text = lideranca.lid_fone_residencial;
tbfonecomercial.Text = lideranca.lid_fone_comercial;
ddlmunicipio.SelectedIndex = ddlmunicipio.Items.IndexOf(ddlmunicipio.Items.FindByText(lideranca.lid_cd_cidade_atuacao.ToString()));
ddlbasealiada.SelectedIndex = ddlbasealiada.Items.IndexOf(ddlbasealiada.Items.FindByText(lideranca.lid_cd_base_aliada.ToString()));
ddlorgao.SelectedIndex = ddlorgao.Items.IndexOf(ddlorgao.Items.FindByText(lideranca.lid_cd_orgao.ToString()));
mdc.SubmitChanges();
Response.Redirect("Autoridade.aspx");
}
catch (Exception)
{
}
finally
{
mdc.Dispose();
}
}
据我所知,您并没有更改底层数据库中lideranca记录的值,而是使用这些值来设置控件的文本和选定索引值。您正在调用数据上下文的SubmitChanges,但没有修改记录。如果您的gridview绑定到lid_liderancas表,那么这些记录将始终相同,因为它们没有被修改。