저는 asp.net 초보자입니다. 기본적으로 ListView 내에 DropDownList 및 EditItemTemplate이 있습니다. 드롭 다운에서 새 항목을 선택하면 사용자가 업데이트를 위해 LinkButton을 클릭하지 않아도되지만 업데이트가 자동으로 수행됩니다. 나는 OnSelectedIndexChanged = "ddlrank_itemChanged"를 사용하여 코드를 사용했고, OnChange = "MyFoo()"를 javascript로 사용했지만, 수행 할 작업에 대한 자세한 내용은 나를 beyound했다.ListView 내의 DropDownList 컨트롤에서 자동 업데이트를 실행합니다.
코드 샘플을 올바르게 포함하기 바랍니다. 어떤 제안이라도 대단히 감사하겠습니다. 감사.
<asp:ListView ID="ListView1" runat="server" DataKeyNames="rankingID" DataSourceID="SqlDataSource1" OnItemUpdated="ListView1_Item_Updated">
<LayoutTemplate>
<table cellpadding="2" width="640px" border="1" runat="server" id="tblRankings">
<tr id="Tr1" runat="server">
<th id="Th1" runat="server">Action</th>
<th id="Th3" runat="server">Rank</th>
<th id="Th4" runat="server">Committee name</th>
<th id="Th5" runat="server">Committee type</th>
</tr>
<tr runat="server" id="itemPlaceholder" />
</table>
<asp:DataPager runat="server" ID="RankingDataPager" PageSize="100">
<Fields>
<asp:NextPreviousPagerField ShowFirstPageButton="true" ShowLastPageButton="true"
FirstPageText="|<< " LastPageText=" >>|"
NextPageText=" > " PreviousPageText=" < " />
</Fields>
</asp:DataPager>
</LayoutTemplate>
<ItemTemplate >
<tr id="Tr2" runat="server">
<td>
<asp:LinkButton ID="EditButton" runat="Server" Text="Edit" CommandName="Edit" />
</td>
<td valign="top">
<asp:Label ID="RankLabel" runat="Server" Text='<%#Eval("rank") %>' />
</td>
<td valign="top">
<asp:Label ID="CommitteeNameLabel" runat="Server" Text='<%#Eval("committeename") %>' />
</td>
<td valign="top">
<asp:Label ID="CommitteeTypeLabel" runat="Server" Text='<%#Eval("committeetype") %>' />
</td>
</tr>
</ItemTemplate>
<EditItemTemplate >
<tr style="background-color: #ADD8E6">
<td>
<asp:LinkButton ID="UpdateButton" runat="server" CommandName="Update" Text="Update" />
<asp:LinkButton ID="CancelButton" runat="server" CommandName="Cancel" Text="Cancel" />
</td>
<td>
<asp:DropDownList ID="ddlrank"
DataSourceID="sdsrank"
DataValueField="vchvalue"
DataTextField="vchvalue"
OnSelectedIndexChanged="ddlrank_itemChanged"
OnChange="MyFoo()"
SelectedValue='<%# Bind("rank") %>' runat="server" >
</asp:DropDownList>
</td>
<td>
<asp:TextBox ID="CommitteeNameTextBox" runat="server" Enabled="false" ReadOnly="true" Text='<%#Bind("committeename") %>'
MaxLength="200" /><br />
</td>
<td>
<asp:TextBox ID="CommitteeTypeTextBox" runat="server" Enabled="false" ReadOnly="true" Text='<%#Bind("committeetype") %>'
MaxLength="20" /><br />
</td>
</tr>
</EditItemTemplate>
</asp:ListView>
좋은 점 :
그것은 단지 드롭 다운리스트에 정의 된 OnSelectedIndexChanged 코드 숨김 기능에 두 줄의 코드가 필요합니다. 내 대답에서 이것을 언급하지 못했고 포스터의 문제 일 수도 있습니다. :-) – Jay
이 경우에도 OP는이 업데이트에 대한 SQL 데이터 소스를 기반으로하기 때문에 Update 작업을 처리하기위한 추가 코드를 작성해야합니다. OP는 dropdownlist 클래스를 상속 받아 Command 컨트롤을 만들어야합니다. http://aspadvice.com/blogs/joteke/archive/2006/01/21/14794.aspx –