Не удалось найти элемент управления 'dropdownlist1' в параметре controlparameter 'title'
По сути, то, что я пытаюсь сделать, - это получить пользовательские выборки в detailsview, а затем вставить их в мою таблицу обзора, но я постоянно получаю сообщение об ошибке, говорящее, что он не может найти элемент управления. Любая помощь была бы потрясающей.
Мой код:
<pre><asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" DataKeyNames="movieid" DataSourceID="SqlDataSource1" DefaultMode="Insert" Height="50px" Width="125px" OnItemInserted="DetailsView1_ItemInserted"> <Fields> <asp:TemplateField HeaderText="MovieTitle" SortExpression="Movieid"> <ItemTemplate> <asp:DropDownList ID="DropDownList1" runat="server" autopostback="True" DataSourceID="SqlDataSourceW2" DataTextField="MovieTitle" DataValueField="MovieId"></asp:DropDownList> <asp:SqlDataSource ID="SqlDataSourceW2" runat="server" ConnectionString="<%$ ConnectionStrings:Database1ConnectionString %>" ProviderName="<%$ ConnectionStrings:Database1ConnectionString.ProviderName %>" SelectCommand="SELECT [MovieID], [MovieTitle] FROM [movies_table] ORDER BY [Movietitle]"></asp:SqlDataSource> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="rating" HeaderText="rating" SortExpression="rating" /> <asp:BoundField DataField="review" HeaderText="review" SortExpression="review" /> <asp:CommandField ShowInsertButton="True" /> </Fields> </asp:DetailsView> </div> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:Database1ConnectionString %>" SelectCommand="select review_table.movieid, movies_table.movieid, review, rating, from review_table, movies_table where Review_table.movieID = @Title order by movies_table.movietitle;" InsertCommand="insert into [REVIEW_TABLE] ([UserName], [MovieID], [MovieTitle], [Rating], [Review]) values (?,?,?,?,?)" ProviderName="<%$ ConnectionStrings:Database1ConnectionString.ProviderName %>" > <SelectParameters> <asp:ControlParameter ControlID="DropDownList1" Name="Title" PropertyName="SelectedValue" defaultvalue="0" /> </SelectParameters> <InsertParameters> <asp:SessionParameter Name="UserName" SessionField="UserName" Type="String" /> <asp:Parameter Name="MovieID" Type="String" /> <asp:Parameter Name="MovieTitle" Type="String" /> <asp:Parameter Name="Rating" Type="String" /> <asp:Parameter Name="Review" Type="String" /> </InsertParameters> </asp:SqlDataSource> <asp:GridView ID="GridReview" runat="server" AutoGenerateColumns="False" DataKeyNames="MovieID" DataSourceID="SqlDataSource1"> <Columns> <asp:BoundField DataField="movietitle" HeaderText="movieid" InsertVisible="True" ReadOnly="True" SortExpression="movieid" /> <asp:BoundField DataField="UserName" HeaderText="User" SortExpression="UserName" /> <asp:BoundField DataField="review" HeaderText="Review" SortExpression="review" /> <asp:BoundField DataField="rating" HeaderText="Rating" SortExpression="rating" /> </Columns> </asp:GridView>
За код:
protected void Page_Load(object sender, EventArgs e) { if (Session["firstname"] == null) { Response.Redirect("login.aspx"); } } protected void DetailsView1_ItemInserted(object sender, DetailsViewInsertedEventArgs e) { Session["UserName"] = HttpContext.Current.User.Identity.Name; GridReview.DataBind(); } }
Ошибка:
Server Error in '/' Application. Could not find control 'DropDownList1' in ControlParameter 'Title'. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.InvalidOperationException: Could not find control 'DropDownList1' in ControlParameter 'Title'. Source Error: An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. Stack Trace: [InvalidOperationException: Could not find control 'DropDownList1' in ControlParameter 'Title'.] System.Web.UI.WebControls.ControlParameter.Evaluate(HttpContext context, Control control) +2751368 System.Web.UI.WebControls.Parameter.UpdateValue(HttpContext context, Control control) +50 System.Web.UI.WebControls.ParameterCollection.UpdateValues(HttpContext context, Control control) +101 System.Web.UI.WebControls.SqlDataSource.LoadCompleteEventHandler(Object sender, EventArgs e) +46 System.Web.UI.Page.OnLoadComplete(EventArgs e) +9758546 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +776
Что я уже пробовал:
следил за тем, что происходит msdn.microsoft.com связанные с этим
[no name]
У вас есть AutoPostBack, установленный True для DropDownList1, вы проверили, правильно ли вы загружаете этот элемент управления и заполняете его после postback