PDA

View Full Version : Could not find control 'xxx' in ControlParameter 'yyy'



***UNIQUE***
جمعه 02 اسفند 1387, 15:35 عصر
سلام
روز بخیر
من یه DropDownList توی قسمت Edit گریدویو گذاشتم اما موقعی که اجرا میکنم و بعد از ویرایش میخوام عمل بروزرسانی و ثبت اون ویرایش رو انجام بدم با خطای
Could not find control 'xxx' in ControlParameter 'yyy'
مواجه میشم



<asp:GridView ID="GridView1" runat="server" AllowSorting="True" AutoGenerateColumns="False"
DataSourceID="SqlDataSourceEditNews" AllowPaging="True" CellPadding="4" ForeColor="#333333" GridLines="None" DataKeyNames="NewsID" HorizontalAlign="Center" Width="600px">
<Columns>
<asp:CommandField CancelText="انصراف" DeleteText="حذف" EditText="ویرایش" InsertText="ثبت"
NewText="جدید" SelectText="انتخاب" ShowDeleteButton="True" ShowEditButton="True"
UpdateText="ثبت" />
<asp:TemplateField HeaderText="موضوع" SortExpression="PartName">
<EditItemTemplate>
&nbsp;<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSourcePartName"
DataTextField="PartName" DataValueField="PartID" Width="130px" AppendDataBoundItems="true" AutoPostBack="true" SelectedValue='<%# Bind("PartID") %>' >
</asp:DropDownList><asp:SqlDataSource ID="SqlDataSourcePartName" runat="server" ConnectionString="<%$ ConnectionStrings:testformoallemConnectionString %>"
SelectCommand="SELECT * FROM [tblPart]"></asp:SqlDataSource>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("PartName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="عنوان" SortExpression="NewsTitle">
<EditItemTemplate>
<asp:TextBox ID="TextBox4" runat="server" Height="135px" Text='<%# Bind("NewsTitle") %>'
TextMode="MultiLine"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label5" runat="server" Text='<%# Bind("NewsTitle") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
.
.
.





<asp:SqlDataSource ID="SqlDataSourceEditNews" runat="server" ConnectionString="<%$ ConnectionStrings:testformoallemConnectionString %>"
SelectCommand="SELECT dbo.tblPart.PartName, dbo.tblPart.PartID AS Expr8, dbo.tblNews.* FROM dbo.tblNews INNER JOIN dbo.tblPart ON dbo.tblNews.PartID = dbo.tblPart.PartID" DeleteCommand="DELETE FROM dbo.tblNews WHERE (NewsID = @NewsID)" UpdateCommand="UPDATE dbo.tblNews SET NewsTitle = @NewsTitle, NewsBody = @NewsBody, NewsDate = @NewsDate, URLPicture = @URLPicture, NewsDateM = GETDATE(), PartID = @PartID FROM dbo.tblNews INNER JOIN dbo.tblPart ON dbo.tblNews.PartID = dbo.tblPart.PartID WHERE (dbo.tblNews.NewsID = @NewsID)">
<DeleteParameters>
<asp:Parameter Name="NewsID" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="NewsTitle" />
<asp:Parameter Name="NewsBody" />
<asp:Parameter Name="NewsDate" />
<asp:Parameter Name="URLPicture" />
<asp:ControlParameter Name="PartID" ControlID="DropDownList1" PropertyName="SelectedValue" />
<asp:Parameter Name="NewsID" />
</UpdateParameters>
</asp:SqlDataSource>


اینم کدهای مربوطه است، برای بقیه فیلدها و قسمت های Edit مشکلی ندارم اما فقط برای این DropDown مقدار Null برمیگردونه و اون خطارو میده؟!؟!!!؟؟!؟!؟!؟
لطفا" راهنماییم کنید که چرا اینطوری میشه؟

***UNIQUE***
جمعه 02 اسفند 1387, 15:52 عصر
مثل اینکه باید فقط این پست رو میزدم تا مشکل حل شه :بامزه:
من controlID رو با ID، DropDownlist که Value اون رو میخواستم ست میکردم در صورتی که باید با کنترلی که DropDownList درونش قرار داشت (GridView )ست میکردم


<asp:ControlParameter Name="PartID" ControlID="GridView1" PropertyName="SelectedValue" />

با این تغییرات مشکل حل شد