DetailsView更新 - 不返回新值

时间:2009-10-08 07:40:43

标签: asp.net vb.net detailsview

编辑某些字段后,单击“更新”不会显示新值。我已经尝试了两种方法来检索新值,正如您从ItemUpdating事件的缩短版本中看到的那样(并且都返回旧的): -

 Protected Sub DetailsView1_ItemUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewUpdateEventArgs) Handles DetailsView1.ItemUpdating

    Dim txtPassword As TextBox = CType(DetailsView1.Rows(1).Cells(1).FindControl("txtPassword"), TextBox)
    Struct_Student.password = txtPassword.Text

    Dim PasswordValue As String = e.NewValues("password").ToString()
    Struct_Student.password = PasswordValue         

End Sub

这是aspx的缩短版本: -

<asp:Content ID="Content1" ContentPlaceHolderID="cpMainContent" Runat="Server">      
 <div id="Controls">     
 <asp:UpdatePanel ID="UpdatePanel1" runat="server">
   <ContentTemplate>   

   <asp:DetailsView ID="DetailsView1"
      runat="server"
      AutoGenerateRows="False" 
      DataKeyNames="student_id" DataSourceID="SqlDataSource1" 
      ForeColor="Blue"
      BackColor="#FFF7E6"            
      AutoPostBack="True"                        
      AutoGenerateEditButton = True
      AutoGenerateInsertButton = True
      OnModeChanging="StudentDetailView_ModeChanging"                         
      Height=163px
      Width=327px              
      style="left: 400px; top: 1px; position: absolute;">  

        <Fields>                             

        <asp:TemplateField 
          HeaderText="Password">
        <EditItemTemplate>
        <asp:TextBox 
          id="txtPassword"
          Text = '<%# Bind ("password") %>'
          runat = "server" />
        <asp:RequiredFieldValidator
          ID = "reqPassword"
          ControlToValidate = "txtPassword"
          Text = "(required)"
          Display = "Dynamic"
          runat = "server" />            
        </EditItemTemplate>
        <ItemTemplate>
          <asp:Label 
            id="PasswordLabel"
            runat="server"
            Text = '<%# Eval("password") %>' />
        </ItemTemplate>
        </asp:TemplateField>       

         <asp:BoundField
           datafield="emailaddress"
           headertext="Email address"
           SortExpression="emailaddress"
           />

        </Fields>
    </asp:DetailsView>

    <asp:SqlDataSource 
      ID="SqlDataSource1"
      runat="server" 
      ConnectionString="<%$ ConnectionStrings:FCLManager %>" ProviderName="MySql.Data.MySqlClient"
      SelectCommand="Select * from tblstudentinfo WHERE centre_id = @CentreID and fullname = @FullName"            
      <SelectParameters>         
        <asp:Parameter Name="CentreID" Type="Int16" DefaultValue="0" />
        <asp:Parameter Name="FullName" Type="String" DefaultValue="0" />
      </SelectParameters>

    </asp:SqlDataSource>         
    </ContentTemplate>           
</asp:UpdatePanel>              
</div>   <%--Controls div--%>          
</asp:Content>

0 个答案:

没有答案