2014-03-05 55 views
0

我有一个GridView,用户可以编辑UNIQUEID,这应该然后更新其中列REF是唯一标识符ASP GridView控件更新不工作

但是,这是行不通的,没有错误,页面只是刷新时,点击更新并没有什么变化:

任何帮助表示赞赏感谢

<asp:GridView ID="GridView3" runat="server" 
      AutoGenerateColumns="False" DataSourceID="SqlDataSource2" 
      ShowHeaderWhenEmpty="True" 
      showfooterwhenempty="true" 
      ShowFooter="True" AllowPaging="True" PageSize="20" 
     CssClass="pagination myTable" 
      BorderColor="#D9D9D9" 
      borderstyle="Solid" 
      BorderWidth="1px"   

      EnableModelValidation="True" GridLines="Both" AutoGenerateEditButton="True"> 
      <HeaderStyle cssClass="myheader" BackColor="#e6EEEE" /> 
    <rowstyle CssClass="myRow" HorizontalAlign="left" BorderColor="#D9D9D9" BorderStyle="Solid" BorderWidth="1px" /> 
    <alternatingrowstyle CssClass="myAltRow" backcolor="#F0F0F6" HorizontalAlign="left" BorderColor="#D9D9D9" BorderStyle="Solid" BorderWidth="1px" /> 

<Columns> 


    <asp:BoundField DataField="uniqueID" HeaderText="uniqueID" 
     SortExpression="uniqueID" /> 

    <asp:BoundField DataField="REF" HeaderText="REF" SortExpression="REF" ReadOnly="true" /> 

</Columns> 

<emptydatarowstyle backcolor="LightBlue" forecolor="Red"/> 
<EmptyDataTemplate> 
     Please enter a unique ID in the search box above. 
    </EmptyDataTemplate> 




</asp:GridView> 



    <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
     ConnectionString="<%$ ConnectionStrings:DGRecon_DevConnectionString %>" 



     SelectCommand=" SELECT 
         * 
          FROM postfinance 
          where uniqueID = @uniqueID" 



     Updatecommand="UPDATE postfinance SET uniqueID = @uniqueID WHERE REF = @REF"> 


    <UpdateParameters> 
     <asp:Parameter Name="uniqueID" Type="String" /> 
     <asp:Parameter Name="ref" Type="String" /> 
    </UpdateParameters> 

    <SelectParameters> 
      <asp:ControlParameter Name="uniqueID" ControlID="uniqueID" /> 
    </SelectParameters> 





</asp:SqlDataSource> 
</div> 

回答

1

您需要的DataKeyNames添加到您的GridView这样的:

<asp:GridView ID="yourGridViewId" DataKeyNames="REF" ... > 
... 
</asp:GridView> 

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.datakeynames.aspx

You must set the DataKeyNames property in order for the automatic update and delete features of the GridView control to work. The values of these key fields are passed to the data source control in order to specify the row to update or delete.

0

添加ref参数作为QueryStringParameter

<SelectParameters> 
    <asp:QueryStringParameter Name="ref" QueryStringField="ref" /> 
</SelectParameters>