【发布时间】:2011-06-01 07:56:56
【问题描述】:
我目前有一个 DetailsView(以前是一个 Formview,但那是一个没有 Masterpage 和 ObjectDataSource 的 nogo)。
不知何故,我在源代码中找不到图形中的“项目 []”(复选框)。 它在“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>
除此之外,参数列表还需要一个“!”新日期之后。也就是它需要:“员工、帐户、评论、类型、状态、新日期、!”
<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,更改为拆分视图并继续分析实际存在的控件。我偶然发现了自动生成复选框。
【问题讨论】:
-
Item -
好吧,从它所在的地方:在 Dato 之前:和在 Kommentar 之后:不知何故,你的 aspx 与生成的 html 不一致(但你已经知道了)。您是否尝试过注释掉所有模板字段并一个一个地添加它们?
-
我什至删除了所有这些,包括字段定义。该项目仍然存在。如果我删除 DetailsView 项目也会消失。不知何故,它似乎链接到 DetailsView 而不是单个字段。确认后,我刚刚注释掉了每个字段,既扩展了选择,又撤回了选择。
<%-- --%>。该项目始终存在。我们的图形专家最近添加了 css,但没有在 FormView 或 DetailsView 上指定任何内容。 -
解决方案:AutoGenerateRows="False"
-
这解释了复选框控件的名称“ctl01”。它每次都会自动生成该列。好眼力。您应该编辑您的问题并添加此解决方案,以便其他人快速查看。非常好。很高兴你把它整理好了。
标签: c# asp.net objectdatasource detailsview