ASP.NET 노트 의 ListView 와 DropDownlList 사용

1.Repeater 는 데 이 터 를 표시 하고 ListView 는 데 이 터 를 조작 합 니 다.

InsertItemTemplate 와 updateItemTemplate**Eval(데이터 표시)과 Bind(양 방향 연결:보 여 줘 야 할 뿐만 아니 라 데이터 베 이 스 를 연결 해 야 합 니 다)
ItemPlaceholder ID:자리 차지 문자,자리 차지 결정,머리(위)와 꼬리(아래)를 분리 ItemTemplate:전시 기능
자동 으로 생 성 되 는 ListView 가 조정 해 야 할 부분(1.생 성 된 스타일 은 style 에 언급 해 야 합 니 다.내부 연결 방식(2.ItemTemplate 의 절반 은으로 데이터 만 읽 을 필요 가 없 기 때문에<%\#Eval("id")%>를 직접 출력 할 수 있 습 니 다.모든 template 에 표시 할 필요 가 없 는 필드 는 위 치 를 삭제 하거나 변경 해 야 합 니 다.
2.이벤트 프로 세 스 와 Repeater:
//데이터 줄 의 종 류 를 먼저 판단 합 니 다.e.Item.ItemType==ListView ItemType.Data Item
//e.Item 을 ListView DataItem 으로 전환 해 야 DataItem ListView DataItem lvDataItem=(ListView DataItem)e.Item 을 받 을 수 있 습 니 다.DataRowView rowView=(DataRowView)lvDataItem.DataItem;//어떤 열 var xRow=(...DAL.DataSet1.T 획득UserRow)rowVIew.Row;//어떤 열의 값 xRow.Age,xRow.sName...등 을 가 져 옵 니 다.
3.구체 적 인 주의(1.해당 하 는 버튼,컨트롤,Validator 를 동안 의 Validation Group 으로 설정 하여 서로 다른 템 플 릿 의 Validator 가 서로 간섭 하 는 것 을 방지 합 니 다.(2.Cancel 단추 의 CausesValidation="false"는 수정 데 이 터 를 삽입 할 때 작업 을 취소 할 수 있 습 니 다.그러면 같은 그룹 에서 도 서로 영향 을 주지 않 을 수 있 습 니 다.

4.InsertItemplate 에 기본 값 을 추가 합 니 다//ItemCreate 속성 에 함수 if(e.Item.ItemType==ListView ItemType.InsertItem){TextBox AgeText=(TextBox)e.Item.FindControl("AgeID")을 입력 합 니 다.AgeText.Text="20";}
5.홈 키 Guid:데이터베이스 에 삽입
(1.ListView 의 ItemInserting 속성://데이터베이스 에 삽입 하기 전의 데이터 키 값 대 e.values["id"]=Guid.NewGuid();
(2.ListView 의 ItemUpdateing 속성:e.ItemIdexe.OldValues//업데이트 전의 값 e.NewValues["Age"]//업데이트 후의 값 e.Cancel=true;/불법 데이터 삽입 취소
ObjectDataSource 바 인 딩 id 가 guid 형식 일 때
 6、DropDrownList
(1,//DropDrownList 에 포 함 된 항목남자
(2.**배경 코드:업데이트 할 때//ListView/ListView 1.Item[e.ItemIndex].FindControl("ID")을 찾 습 니 다.//DropView ListDropDrownList d=(DropDrownList)listView 1.Item[e.ItemIndex].FindControl("ID");/할당 e.NewValues=["필드"]=d.SelecteValues;
(3.**배경 코드:편집 을 실현 할 때 원래 의 데 이 터 를 표시 합 니 다//데이터 줄 이 있 는 if(e.Item.ItemType==ListVIEData List.Data Item){/컨트롤 을 가 져 옵 니 다 DropDownlist d=(DropDownlist)e.Item.FindControl("ID");
if(d!=null){//이 줄 에 연 결 된 데 이 터 를 가 져 옵 니 다.ListView DataItem lv=(ListView DataItem)e.Item;DataRowItem row=(dataRowItem)lv.DataItem;//이 줄 에 데이터 가 있 으 면 if(row!=null){//데이터베이스 읽 기 이 Row 의 값 var my Row=(프로젝트 이름.DAL.DATASetUsers.TUsers)row.Row;
//쌍 을 읽 는 Row 값 을 드 롭 다운 메뉴 의 옵션 으로 설정 합 니 다.d.Selected Value=my Row 필드;}}}}}
(4、볼 수 있 습 니 다.Enabled="false
 
우정 링크 관리:
효과:

존재 하 는 문제점 요약:
(1.경고 1 요소 인'ListView'는 알려 진 요소 가 아 닙 니 다.웹 사이트 에 컴 파일 오류 가 있 거나 웹 config 파일 이 부족 하기 때 문 일 수 있 습 니 다.E:\code\Projects\WebSite_zzl 01\\우정 링크\\LinkUrlAdmin.aspx 39 10 우정 링크
(2.onLinkTypeChange(this,'+logoID.clientID+')에서 프론트 데스크 톱 자 바스 크 립 트 에 전 달 된 ID 는 클 라 이언 트 의 ID 가 아니 므 로 표시 와 숨겨 진 기능 을 수행 할 수 없 기 때문에 myID 를 추가 합 니 다.
:   logoID.Attributes["myid"] = logoID.ClientID; 매개 변수 전달
LinkUrl_Admin.aspx.cs

using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Web;
 using System.Web.UI;
 using System.Web.UI.WebControls;
 using System.Data;

 namespace
 {
     public partial class LinkUrl_Admin : System.Web.UI.Page
     {
         protected void Page_Load(object sender, EventArgs e)
         {

         }

         protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)
         {
             //ListView1 ItemDataBound
             //
             if (e.Item.ItemType == ListViewItemType.DataItem) {
                 DropDownList ddlsLinkType = (DropDownList)e.Item.FindControl("ddlsLinkType");
                 ListViewDataItem dataitem = (ListViewDataItem)e.Item;
                 DataRowView myrow = (DataRowView)dataitem.DataItem;

                 if (ddlsLinkType != null && myrow != null) {
                     var sUrl = ( .ADL.DataSet1.T_LinksRow)myrow.Row;
                     ddlsLinkType.SelectedValue = sUrl.sLinkType;
                 }
             }

         }

         protected void ListView1_ItemInserting(object sender, ListViewInsertEventArgs e)
         {
             //
             DropDownList ddlsLinkType = (DropDownList)e.Item.FindControl("ddlsLinkType");
             e.Values["sLinkType"] = ddlsLinkType.SelectedValue;   
         }

         protected void ListView1_ItemUpdating(object sender, ListViewUpdateEventArgs e)
         {
             //
             DropDownList ddlsLinkType = (DropDownList)ListView1.Items[e.ItemIndex].FindControl("ddlsLinkType");
             e.NewValues["sLinkType"] = ddlsLinkType.SelectedValue;
         }

         protected void ListView1_ItemCreated(object sender, ListViewItemEventArgs e)
         {
             if (e.Item.ItemType == ListViewItemType.DataItem || e.Item.ItemType ==
                 ListViewItemType.InsertItem) {
                DropDownList ddlsLinkType = (DropDownList)e.Item.FindControl("ddlsLinkType");
                TextBox logoID = (TextBox)e.Item.FindControl("LogoUrlTextBox");
                 if (ddlsLinkType != null&&logoID!=null) {
                     //onchange html select
                     //onLinkTypeChange javascript jQuery

                     logoID.Attributes["myid"] = logoID.ClientID;

                     ddlsLinkType.Attributes["onchange"] = "onLinkTypeChange(this,'" + logoID.ClientID + "')";
                     if(ddlsLinkType.SelectedValue=="Text"){
                         logoID.Style["display"] = "none";
                     }
                 }
             }
         }
     }
 }
LinkUrl_Admin.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="LinkUrl_Admin.aspx.cs" Inherits=" .LinkUrl_Admin" %>

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 <html xmlns="http://www.w3.org/1999/xhtml">
 <head runat="server">
     <title> </title>
     <script src="Scripts/jquery-1.4.2.js" type="text/javascript"></script>
     <script type="text/javascript">
         function onLinkTypeChange(urlType, logoID) {
             if ($(urlType).val() == "Text") {
                 $("input:text[myid=" + logoID + "]").hide();
                 //$("#" + logoID).hide(); // id
                 //$("#ListView1_LogoURLTextBox").hide();// id
             }
             else {
                 $("input:text[myid=" + logoID + "]").show();
                 //$("#" + logoID).show();
             }
         }
     </script>
 </head>
 <body>
     <form id="form1" runat="server">
     <div>

         <asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
             DeleteMethod="Delete" InsertMethod="Insert"
             OldValuesParameterFormatString="original_{0}" SelectMethod="GetData"
             TypeName=" .ADL.DataSet1TableAdapters.T_LinksTableAdapter"
             UpdateMethod="Update">
             <DeleteParameters>
                 <asp:Parameter Name="Original_ID" Type="Int64" />
             </DeleteParameters>
             <InsertParameters>
                 <asp:Parameter Name="SeoNo" Type="Int32" />
                 <asp:Parameter Name="SiteName" Type="String" />
                 <asp:Parameter Name="sLinkType" Type="String" />
                 <asp:Parameter Name="SiteUrl" Type="String" />
                 <asp:Parameter Name="LogoUrl" Type="String" />
             </InsertParameters>
             <UpdateParameters>
                 <asp:Parameter Name="SeoNo" Type="Int32" />
                 <asp:Parameter Name="SiteName" Type="String" />
                 <asp:Parameter Name="sLinkType" Type="String" />
                 <asp:Parameter Name="SiteUrl" Type="String" />
                 <asp:Parameter Name="LogoUrl" Type="String" />
                 <asp:Parameter Name="Original_ID" Type="Int64" />
             </UpdateParameters>
         </asp:ObjectDataSource>

     </div>
     <asp:ListView ID="ListView1" runat="server" DataKeyNames="ID"
         DataSourceID="ObjectDataSource1" InsertItemPosition="LastItem"
         onitemdatabound="ListView1_ItemDataBound"
         oniteminserting="ListView1_ItemInserting"
         onitemupdating="ListView1_ItemUpdating"
         onitemcreated="ListView1_ItemCreated">

         <EditItemTemplate>
             <tr style="background-color: #999999;">
                 <td>
                     <asp:Button ID="UpdateButton" runat="server" CommandName="Update" Text=" " />
                     <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text=" " />
                 </td>
                 <td>
                     <asp:TextBox ID="SeoNoTextBox" runat="server" Text='<%# Bind("SeoNo") %>' />
                 </td>
                 <td>
                     <asp:TextBox ID="SiteNameTextBox" runat="server"
                         Text='<%# Bind("SiteName") %>' />
                 </td>
                 <td>
                    <asp:DropDownList ID="ddlsLinkType" runat="server">
                      <asp:ListItem Value="Text"> </asp:ListItem>
                      <asp:ListItem Value="Pic"> </asp:ListItem>
                    </asp:DropDownList>
                 </td>
                 <td>
                     <asp:TextBox ID="SiteUrlTextBox" runat="server" Text='<%# Bind("SiteUrl") %>' />
                 </td>
                 <td>
                     <asp:TextBox ID="LogoUrlTextBox" runat="server" Text='<%# Bind("LogoUrl") %>' />
                 </td>
             </tr>
         </EditItemTemplate>
         <EmptyDataTemplate>
             <table runat="server"
                 style="background-color: #FFFFFF;border-collapse: collapse;border-color: #999999;border-style:none;border-width:1px;">
                 <tr>
                     <td>
                         。</td>
                 </tr>
             </table>
         </EmptyDataTemplate>
         <InsertItemTemplate>
             <tr style="">
                 <td>
                     <asp:Button ID="InsertButton" runat="server" CommandName="Insert" Text=" " ValidationGroup="Insert" />
                     <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text=" " />
                 </td>
                 <td>
                     <asp:TextBox ID="SeoNoTextBox" ValidationGroup="Insert" runat="server" Text='<%# Bind("SeoNo") %>' />
                     <asp:RequiredFieldValidator ValidationGroup="Insert" ID="RequiredFieldValidator1" runat="server" ErrorMessage="*" ControlToValidate="SeoNoTextBox">
                     </asp:RequiredFieldValidator>
                     <asp:CompareValidator ValidationGroup="Insert" ID="CompareValidator1" runat="server" ErrorMessage=" " ControlToValidate="SeoNoTextBox" Operator="DataTypeCheck" Type="Integer">
                     </asp:CompareValidator>
                 </td>
                 <td>
                     <asp:TextBox ID="SiteNameTextBox" ValidationGroup="Insert" runat="server" MaxLength="50"
                         Text='<%# Bind("SiteName") %>' />
                     <asp:RequiredFieldValidator ValidationGroup="Insert" ID="RequiredFieldValidator2" runat="server" ErrorMessage="*" ControlToValidate="SiteNameTextBox">
                     </asp:RequiredFieldValidator>
                 </td>
                 <td>
                    <asp:DropDownList ID="ddlsLinkType" ValidationGroup="Insert" runat="server" >
                      <asp:ListItem Value="Text"> </asp:ListItem>
                      <asp:ListItem Value="Pic"> </asp:ListItem>
                    </asp:DropDownList>
                 </td>
                 <td>
                     <asp:TextBox ID="SiteUrlTextBox" ValidationGroup="Insert" runat="server" Text='<%# Bind("SiteUrl") %>' />
                     <asp:RequiredFieldValidator ValidationGroup="Insert" ID="RequiredFieldValidator3" runat="server" ErrorMessage="*" ControlToValidate="SiteUrlTextBox">
                     </asp:RequiredFieldValidator>
                 </td>
                 <td>
                     <asp:TextBox ID="LogoUrlTextBox" ValidationGroup="Insert" runat="server" Text='<%# Bind("LogoUrl") %>' />
                 </td>
             </tr>
         </InsertItemTemplate>
         <ItemTemplate>
             <tr style="background-color: #E0FFFF;color: #333333;">
                 <td>
                     <asp:Button ID="DeleteButton" runat="server" CommandName="Delete" Text=" " />
                     <asp:Button ID="EditButton" runat="server" CommandName="Edit" Text=" " />
                 </td>
                 <td>
                     <asp:Label ID="SeoNoLabel" runat="server" Text='<%# Eval("SeoNo") %>' />
                 </td>
                 <td>
                     <asp:Label ID="SiteNameLabel" runat="server" Text='<%# Eval("SiteName") %>' />
                 </td>
                 <td>
                    <asp:DropDownList ID="ddlsLinkType" runat="server" Enabled="false">
                      <asp:ListItem Value="Text"> </asp:ListItem>
                      <asp:ListItem Value="Pic"> </asp:ListItem>
                    </asp:DropDownList>
                 </td>
                 <td>
                     <asp:Label ID="SiteUrlLabel" runat="server" Text='<%# Eval("SiteUrl") %>' />
                 </td>
                 <td>
                     <asp:Label ID="LogoUrlLabel" runat="server" Text='<%# Eval("LogoUrl") %>' />
                 </td>
             </tr>
         </ItemTemplate>
         <LayoutTemplate>
             <table runat="server">
                 <tr runat="server">
                     <td runat="server">
                         <table ID="itemPlaceholderContainer" runat="server" border="1"
                             style="background-color: #FFFFFF;border-collapse: collapse;border-color: #999999;border-style:none;border-width:1px;font-family: Verdana, Arial, Helvetica, sans-serif;">
                             <tr runat="server" style="background-color: #E0FFFF;color: #333333;">
                                 <th runat="server">
                                 </th>
                                 <th runat="server">
                                     </th>
                                 <th runat="server">
                                     </th>
                                 <th runat="server">
                                     </th>
                                 <th runat="server">
                                     </th>
                                 <th runat="server">
                                     logo </th>
                             </tr>
                             <tr ID="itemPlaceholder" runat="server">
                             </tr>
                         </table>
                     </td>
                 </tr>
                 <tr runat="server">
                     <td runat="server"
                         style="text-align: center;background-color: #5D7B9D;font-family: Verdana, Arial, Helvetica, sans-serif;color: #FFFFFF">
                         <asp:DataPager ID="DataPager1" runat="server">
                             <Fields>
                                 <asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True"
                                     ShowLastPageButton="True" />
                             </Fields>
                         </asp:DataPager>
                     </td>
                 </tr>
             </table>
         </LayoutTemplate>
     </asp:ListView>
     </form>
 </body>
 </html>

좋은 웹페이지 즐겨찾기