有沒有遇過神奇的事件??
最近遇到一個
就是 ListView 在 Insert Template 時會出現 神奇 Exception
ObjectDataSource“ObjectDataSource1”没有可以插入的值。请检查“values”字典是否包含值。
原始碼如下
<asp:ListView runat="server" ID="groupedList" DataSourceID="odbDetailCLD_SERIALDEF"
EnableViewState="true" DataKeyNames="SERIALID" OnSelectedIndexChanging="groupedList_SelectedIndexChanging"
InsertItemPosition="FirstItem" OnItemInserting="groupedList_ItemInserting">
<LayoutTemplate>
<table runat="server" id="table1">
<tr runat="server" id="itemPlaceholder">
</tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr id="trItem" runat="server">
<td>
<%-- Data-bound content. --%>
<asp:LinkButton ID="btnItemEdit" CommandName="Edit" runat="server">
<img id="imgItemEdit" runat="server" alt='<%#Eval("SerialName") %>' src='~/Image/edit.bmp' />
</asp:LinkButton>
<asp:LinkButton ID="NameLabel" runat="server" CommandName='Select' CommandArgument='<%#Eval("SerialID") %>'
Text='<%#Eval("SerialName") %>' />
</td>
</tr>
</ItemTemplate>
<EditItemTemplate>
<tr id="tdEdit" runat="server">
<td>
<input id="Hidden1" type="hidden" runat="server" value='<%#Bind("SERIALID") %>' />
<asp:LinkButton ID="LinkButton2" CommandName="Update" runat="server">
<img id="Img2" runat="server" alt='<%#Eval("SerialName") %>' src='~/Image/save.gif' />
</asp:LinkButton>
<asp:LinkButton ID="LinkButton1" CommandName="Cancel" runat="server">
<img id="imgEditEdit" runat="server" alt='<%#Eval("SerialName") %>' src='~/Image/cancel.gif' />
</asp:LinkButton>
系'a8t列'a6C課'bd?程'b5{名'a6W稱'ba?
<asp:TextBox ID="txtEditSerialName" runat="server" Text='<%#Bind("SerialName") %>'></asp:TextBox>
</td>
</tr>
</EditItemTemplate>
<InsertItemTemplate>
<tr id="tdInsert" runat="server">
<td>
<asp:LinkButton ID="btnSave" CommandName="Insert" runat="server">
<img id="imgInsertSave" runat="server" alt='<%#Eval("SerialName") %>' src='~/Image/save.gif' />
</asp:LinkButton>
<asp:LinkButton ID="btnCancel" CommandName="Cancel" runat="server">
<img id="imtInsertCancel" runat="server" alt='<%#Eval("SerialName") %>' src='~/Image/cancel.gif' />
</asp:LinkButton>
系'a8t列'a6C課'bd?程'b5{名'a6W稱'ba?
<asp:TextBox ID="txtInsertSerialName" runat="server" Text='<%#Bind("SerialName") %>'></asp:TextBox>
</td>
</tr>
</InsertItemTemplate>
</asp:ListView>
看出 Insert Template 那有問題了嗎??
對,我看了大約三個月吧,還是看不出來。
後來不死心將錯誤翻成英文,再請 google 大神幫忙找
"ObjectDataSource“ObjectDataSource1”没有可以插入的值。请检查“values”字典是否包含值。"
翻成
"asp.net listview there is no value to insert"
還真的給我
找到了I have found the problem.
The runat="server" on the
InsertItemTemplate is causing the problem. Remove the runat="server" and
everything works fine.
Please shed some light on why this should cause a problem.
--
Philip
天殺的 runat="server"
為何 EditTemplate 可以
InsertTemplate 就不行呀~~
update 2008/11/17
神奇的事發生了。今天連 EditTemplate 也不行。
但 EditTemplate 中有兩個 Field
SerialID, SerialName
SerialID Bind 到一個 Hidden Field, SerialName Bind 到 TextBox。
為何 SerialName 就是給他變成 null >_<
把 | 的 runat="server" 拿掉後又好了 somebody tell me why ~~
最近常在用 jQuery,但是 VS 的 Intellisens 都無法 Support 今天找到好方法 TIPS-為VS2008加入完整jQuery Intellisensedownload 了 Hotfix( 說明) 及 jQuery 的 Document將 jQuery.1.2.6.js 及 jQuery.1.2.6-vsdoc.js 放在同一個目錄就行了 使用時,只要引用了 jQuery.1.2.6.js <script src="../NewFolder1/jquery.js" type="text/javascript"></script> 這個新的 Hotfix 會自動找到說明文件,並顯示出來。
因為裝了 Gavotte Ramdisk 目前有大約 800 M 的空間可以用 所以想把 ASP.NET 的暫存目錄改到 RAM DISK 中 看能不能加快 COMPILE 的速度 做法為有兩種 1. 修改 machine.config machine.config 的位置在 C:\WINDOWS\Microsoft.NET\Framework\[Framework Version]\CONFIG [Framework Version] 為你目前用的 framework 版本。不過因為 3.5 其實本體還是用 2.0 的所以3.0, 3.5 的版本還是得修改 v2.0 裡的 machine.config 2. 修改 web.config 這位置不用說了吧 加入 <system.web> <compilation tempDirectory="[Template Folder]" debug="true"></compilation> </system.web> 這樣子就行了
|