关于detailsview控件修改数据的问题
我在ItemUpdating事件里是按照下面的方法取值的:TextBox txtID = (TextBox)DetailsView1.FindControl("TextBox1");
int intID = Convert.ToInt32(txtID.Text);
不过我看msdn上这么说:
对于更新或删除操作,DetailsView 控件使用以下三个字典集合将值传
递到数据源:Keys 字典、NewValues 字典和 OldValues 字典.
请问是不是只要用NewValues这样的方法来取值就行了,不过我不会用,请大家教教我怎么用,最好发个样例代码给我.我用e.NewValues.Count得到的是0,是不是程序有问题.
下面是页面代码:
<Fields>
<asp:TemplateField>
<HeaderTemplate>ID</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("id") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" ReadOnly="true" Text='<%# Bind("id") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>FirstName</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server"
Text='<%# Bind("firstname")
%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server"
Text='<%# Bind("firstname") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
</Fields> --------------------编程问答-------------------- protected void dvDetails_ItemUpdated(object sender, DetailsViewUpdatedEventArgs e)
{
string name = "";
string value = "";
string id = "";
string content = "";
IDictionaryEnumerator de = e.NewValues.GetEnumerator();
id = e.Keys[0].ToString();
ObjectDataSource1.UpdateParameters.Add( MsTigerCommon.Data.MsTiger_Bulletion_DataSet.FIELD_1_MSTIGER_BULLETION_ID , id);
content = ((TextBox)((DetailsView)sender).FindControl("txtContent")).Text;
ObjectDataSource1.UpdateParameters.Add( MsTigerCommon.Data.MsTiger_Bulletion_DataSet.FIELD_3_MSTIGER_BULLETION_CONTENT, HtmlString.ConvertHtmlCodeToDbCode(content) );
while (de.MoveNext())
{
name = de.Key.ToString();
value = de.Value.ToString();
ObjectDataSource1.UpdateParameters.Add(name, value);
}
ObjectDataSource1.Update();
dvDetails.DataBind();
} --------------------编程问答-------------------- --------------------编程问答--------------------
补充:.NET技术 , ASP.NET