e.NewValues 在 Asp.Net DetailsView ItemUpdate 中返回 Null
本文关键字:ItemUpdate 返回 Null DetailsView Net NewValues Asp | 更新日期: 2023-09-27 17:57:25
我有一个详细信息视图来显示用户详细信息并在必要时进行更新。我正在使用 e.NewValues 来获取要更新的编辑状态值。但它会引发空异常。代码如下。
<asp:DetailsView ID="MyDetailsView" CssClass="gv" runat="server" Width="100%" CellPadding="15"
ForeColor="#333333" AutoGenerateEditButton="True" OnModeChanging="MyDetailsView_ModeChanging"
AutoGenerateRows="False" OnItemUpdating="MyDetailsView_ItemUpdating">
<FieldHeaderStyle CssClass="gvheader" Width="100px" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<CommandRowStyle BackColor="#E2DED6" Font-Bold="True" />
<RowStyle BackColor="White" ForeColor="#333333" BorderColor="#666666" />
<FieldHeaderStyle BackColor="#6F97BA" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="white" />
<Fields>
<asp:BoundField HeaderText="Address" DataField="Address" SortExpression="Address">
<ControlStyle Height="25px" Width="450px" />
</asp:BoundField>
<asp:BoundField HeaderText="Postcode" DataField="Postcode" SortExpression="Postcode">
<ControlStyle Height="25px" Width="450px" />
</asp:BoundField>
<asp:BoundField HeaderText="Country" DataField="Countries" SortExpression="Countries">
<ControlStyle Height="25px" Width="450px" />
</asp:BoundField>
</Fields>
</asp:DetailsView>
代码隐藏
protected void MyDetailsView_ItemUpdating(object sender, DetailsViewUpdateEventArgs e)
{
string address = e.NewValues["Address"].ToString();
string postcode = e.NewValues["Postcode"].ToString();
string country = e.NewValues["Countries"].ToString();
Client c = new Client();
c.UpdateMyDetails((string)Session["Code"], address, postcode, country);
MyDetailsView.ChangeMode(DetailsViewMode.ReadOnly);
MyDetailsView.DataBind();
}
有人可以帮忙吗?
我知道
这是一个古老的问题,但也许这会帮助像我一样遇到这个问题的其他人。
对于我的解决方案,我使用了空三级Convert.ToString(e.NewValues["Country"]) ??'" '";
这是另一篇帮助我的帖子,有一些解释。如何在 c# .net 中将空值转换为字符串?