项目复选框来自何处

时间:2011-06-01 07:56:57

标签: c# asp.net objectdatasource detailsview

我目前有一个DetailsView(曾经是一个Formview,但这是一个带有Masterpage和ObjectDataSource的nogo)。

不知何故,在图片中有一个“Item []”(复选框),我在源代码中找不到。 它在“Kommentar:”之后和“Dato:”之前以图形方式找到。

                <asp:DetailsView ID="dv_InsertComment" runat="server" DefaultMode="Insert" DataSourceID="ods_InsertComment"
                    HeaderText="Kommentar:">
                    <Fields>
                        <asp:TemplateField HeaderText="Dato:">
                            <InsertItemTemplate>
                                <asp:Label ID="dNow" runat="server" Text='<%# DateTime.Now.ToShortDateString() %>'></asp:Label>
                            </InsertItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Konto" Visible="false">
                            <InsertItemTemplate>
                                <asp:TextBox ID="tbAccountIns" runat="server"></asp:TextBox>
                            </InsertItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Kommentar:">
                            <InsertItemTemplate>
                                <asp:TextBox ID="tbCommentIns" runat="server" Rows="3" Columns="50" TextMode="MultiLine"></asp:TextBox>
                            </InsertItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Status:">
                            <InsertItemTemplate>
                                <asp:DropDownList ID="StatusList" runat="server" DataSourceID="ods_StatusOptions"
                                    DataTextField="name">
                                </asp:DropDownList>
                            </InsertItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Fremnotering:">
                            <InsertItemTemplate>
                                <asp:DateBox ID="dFuture" runat="server" AllowNullDate="true" />
                            </InsertItemTemplate>
                        </asp:TemplateField>
                        <asp:ButtonField ButtonType="Button" Text="Indsæt kommentar" CommandName="Insert" />
                        <asp:ButtonField ButtonType="Button" Text="Annuller" CommandName="Cancel" />
                    </Fields>
                </asp:DetailsView>

在其上面,参数列表需要“!”在NewDate之后。 Aka它要求:“员工,帐户,评论,类型,状态,NewDate,!。”

                <asp:ObjectDataSource ID="ods_InsertComment" runat="server" InsertMethod="InsertComment"
                    TypeName="OurClient.Host.CommentsBLL" SelectMethod="GetNothing">
                    <InsertParameters>
                        <asp:SessionParameter Name="employee" SessionField="employee" DbType="String" />
                        <asp:Parameter Name="Account" DbType="String" />
                        <asp:Parameter Name="Comment" DbType="String" />
                        <asp:Parameter Name="Type" DefaultValue="0" DbType="Int32" />
                        <asp:Parameter Name="Status" DbType="Int32" />
                        <asp:Parameter Name="NewDate" DbType="DateTime" />
                    </InsertParameters>
                </asp:ObjectDataSource>

我在想是否删除了项目和复选框,“!”参数也会消失。但如果不存在,我该怎么删除呢?

我删除了整个<Fields></Fields>只是为了只剩下Item []。我将DefaultMode="Insert"移出,而Item []变为灰色(不可点击)。正如我在开头所说 - DetailsView是一个解决方案,而不是FormView

在您要求GetNothing是必需之前,它必须定义SelectMethod。除非在那里,否则无法编译它。

解决方案:AutoGenerateRows="False"

上的<asp:detailsview ....>

我是如何发现那个的?我去了有问题的aspx,改为Split视图并继续分析实际存在的控件。我偶然发现了Auto Generate复选框。

1 个答案:

答案 0 :(得分:1)

您是否搜索过代码隐藏文件?

也许注入了复选框?

复选框的ID为“ContentPlaceHolder2_dv_InsertComment_ctl01”,可以是动态添加的控件。

检查您的代码隐藏文件中是否有任何字符串,如“InsertComment”或“dv_”或“_dv”等,并查看。

我只是在猜测。