当前位置:编程学习 > C#/ASP.NET >>

关于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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,