繁体   English   中英

尝试为asp.net SqlDataSource设置参数并通过gridview更新

[英]Trying to make parameters for asp.net SqlDataSource and update via gridview

我尝试遵循msdn,但显然我弄错了,或者至少缺少一些关键信息。

该页面很简单,我有一个与SqldataSource绑定的网格视图,在update命令中,我为网格视图中的字段创建了参数,还有一个用于告诉我的update命令要更新哪些行的参数。

我的主要问题是为什么它告诉我gridview不包含“ SelectParameters”的定义(请参见代码中的注释)。 那里的代码直接来自msdn。

我有一些问题需要解决,但首先我必须弄清楚如何传递参数。

谢谢

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="RegisterVisitorPortal.aspx.cs" Inherits="resident_RegisterVisitorPortal" %>

<script runat="server">


    //void EmployeesGridView_OnSelectedIndexChanged(Object sender, EventArgs e)
    //{
    //    //gridview does not contain a definition for 'SelectParameters'
    //    GridView1.SelectParameters["VisitorName"].DefaultValue = GridView1.SelectedValue.ToString();
    //    GridView1.SelectParameters["ResidentName"].DefaultValue = Request.LogonUserIdentity.Name;
    //    GridView1.DataBind();
    //}

</script>    

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

    <%--data source object the grid view is tied to--%>

    <asp:SqlDataSource 
        ID="SqlDataSource1" 
        runat="server" 
        ConnectionString="<%$ ConnectionStrings:Warren_SEINDATASYSTEMSConnectionString %>" 
        SelectCommand="SELECT [VisitorCode], [VisitorName] FROM [RegisteredVisitors] WHERE [ResidentName] = @ResidentName"
        OnSelecting="SqlDataSource1_Selecting"
        UpdateCommand="UPDATE [dbo].[RegisteredVisitors] SET [VisitorCode] = '3222' ,[VisitorName] = @VisitorName WHERE [ResidentName] = @ResidentName" 
        >
        <SelectParameters>
            <asp:Parameter Name="VisitorName" Type="String" DefaultValue="Visitor" />
            <asp:Parameter Name="ResidentName" Type="String" DefaultValue="ResidentName" />
        </SelectParameters>
        <UpdateParameters>
            <asp:Parameter Name="VisitorName" Type="String" DefaultValue="Visitor" />
            <asp:Parameter Name="ResidentName" Type="String" DefaultValue="ResidentName" />
        </UpdateParameters>
    </asp:SqlDataSource>

    <%--grid view showing and allowing edit of data--%>

    <asp:GridView ID="GridView1" runat="server" AutoGenerateDeleteButton="True" AutoGenerateEditButton="True" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" CellPadding="4" ForeColor="#333333">
        <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
        <Columns>
            <asp:BoundField DataField="VisitorCode" HeaderText="VisitorCode" SortExpression="VisitorCode" ReadOnly="true"/>
            <asp:BoundField DataField="VisitorName" HeaderText="VisitorName" SortExpression="VisitorName" />
        </Columns>
        <EditRowStyle BackColor="#999999" BorderColor="Black" BorderWidth="1px" />
        <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
        <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
        <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
        <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
        <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
        <SortedAscendingCellStyle BackColor="#E9E7E2" />
        <SortedAscendingHeaderStyle BackColor="#506C8C" />
        <SortedDescendingCellStyle BackColor="#FFFDF8" />
        <SortedDescendingHeaderStyle BackColor="#6F8DAE" />
    </asp:GridView>



</asp:Content>

定义SqlDataSource ,在select语句中未使用任何参数,因此不需要SqlDataSource SelectParameters部分,但需要UpdateParameters部分

  <selectparameters>
              <asp:controlparameter name="VisitorName" controlid="hiddenfiled1" propertyname="value"/>
          </selectparameters>
  <selectparameters>
              <asp:controlparameter name="ResidentName" controlid="hiddenfiled2" propertyname="value"/>
          </selectparameters>

在编辑事件时将值存储在“隐藏文件”中。 使用隐藏的字段值作为SqlDataSource中的参数以使其工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM