我有一個ListView
裏面的與「添加記錄」按鈕。當我點擊「添加記錄」按鈕時,InsertItemTemplate
沒有出現。奇怪的是,如果我第二次點擊該按鈕,它確實會出現。我已經嘗試了一些東西,比如將CommandName="InitInsert"
或CommandName="Insert"
添加到按鈕,將ListView
從Accordion
中取出,取出ListView
中的「插入」按鈕,然後從Accordion
中除去,全都無濟於事。有什麼明顯的我失蹤了?我究竟做錯了什麼?ListView將不會顯示InsertItemTemplate
<asp:ListView runat="server" ID="List1"
OnItemDataBound="List1_ItemDataBound"
OnItemCommand="List1_ItemCommand"
OnItemEditing="List1_ItemEditing"
OnItemUpdating="List1_ItemUpdating"
OnItemCanceling="List1_ItemCancelling"
OnItemDeleting="List1_ItemDeleting"
OnItemInserting="List1_ItemInserting"
OnSorting="List1_Sorting">
<LayoutTemplate>
<table border="0" cellpadding="1" cellspacing="0">
<thead>
<tr>
<th><asp:LinkButton runat="server" ID="BtnCmpnyId" CommandName="Sort" CommandArgument="CmpnyId" Text="Company Code" /></th>
... more columns ...
</tr>
</thead>
<tbody>
<tr runat="server" id="itemPlaceholder"></tr>
</tbody>
<tfoot>
<tr><td colspan="7" style="text-align: center;">
<asp:Button runat="server" ID="BtnAddRecord" Text="Add Record" OnClick="BtnAddRecord_Click" />
</td></tr>
</tfoot>
</table>
</LayoutTemplate>
<InsertItemTemplate>
<tr>
<td>
<asp:HiddenField runat="server" ID="HiddenID" Value="-1" />
<asp:TextBox runat="server" ID="TextCmpnyId" Text='<%# Eval("CmpnyId") %>' MaxLength="6" Width="50" />
</td>
... more fields ...
</tr>
</InsertItemTemplate>
... other templates ...
</asp:ListView>
在背後說我的代碼:
protected void BtnAddRecord_Click(object sender, EventArgs e)
{
List1.EditIndex = -1;
List1.InsertItemPosition = InsertItemPosition.LastItem;
//Button button = (Button)List1.Controls[0].FindControl("BtnAddRecord");
//button.Visible = false;
}
// ItemCommand() is an empty shell for now...
protected void List1_ItemCommand(object sender, ListViewCommandEventArgs e)
{
switch (e.CommandName.ToLower())
{
case "sort":
break;
case "edit":
break;
case "insert":
break;
case "update":
break;
case "cancel":
break;
case "delete":
break;
}
什麼是你的OnItemInserting,OnItemXXXing等事件。代碼在沒有這些事件的情況下工作 – codingbiz
@codingbiz - 當我點擊按鈕時唯一被擊中的是ItemCommand(),我已經在上面添加了它。 –
你的代碼仍然可用,'commandName ==「」' - 一個空字符串。在每個事件處理程序中放置一個斷點並調試我的代碼 – codingbiz