我试图关注一个msdn,但显然我弄错了,或者至少错过了一些关键信息。
页面很简单,我有一个绑定到SqldataSource的网格视图,并且在更新命令中,我已经为网格视图中的字段创建了参数,还有一个用于告诉我的更新命令要更新哪些行。
我的主要问题是为什么它告诉我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>
答案 0 :(得分:0)
定义SqlDataSource
时,您的select语句中没有使用任何参数,因此SelectParameters
中不需要SqlDataSource
部分,但您需要UpdateParameters
部分
答案 1 :(得分:0)
<selectparameters>
<asp:controlparameter name="VisitorName" controlid="hiddenfiled1" propertyname="value"/>
</selectparameters>
<selectparameters>
<asp:controlparameter name="ResidentName" controlid="hiddenfiled2" propertyname="value"/>
</selectparameters>
在编辑事件时将值存储在隐藏文件中。使用隐藏字段值作为SqlDataSource中的参数,使其正常工作。