IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[CHP_AJAX_CODEHELPER]') AND type in (N'P', N'PC')) DROP PROC CHP_AJAX_CODEHELPER GO /* EXEC CHP_AJAX_CODEHELPER 'COMMON', 'A02', '', '', '', '' */ CREATE PROC [dbo].[CHP_AJAX_CODEHELPER] ( @CODEHELPERTYPE VARCHAR(10) --// 코드헬퍼 종류 , @MAIN_CODE CHAR(3) --// 메인코드 , @QUERY NVARCHAR(100) --// 검색어 , @RESERVED1 NVARCHAR(100) --// 예비필드1 , @RESERVED2 NVARCHAR(100) --// 예비필드2 , @RESERVED3 NVARCHAR(100) --// 예비필드3 ) AS SET NOCOUNT ON --SET XACT_ABORT ON --BEGIN TRAN BEGIN --//////////////////// 변수선언 : S //////////////////// --//////////////////// 변수선언 : E //////////////////// --//////////////////// 유효성검사 : S //////////////////// --//////////////////// 유효성검사 : E //////////////////// --//////////////////// 비즈니스로직 : S //////////////////// --// 공통코드 IF (@CODEHELPERTYPE = 'COMMON') BEGIN SELECT A.TOTAL_CODE AS TOTAL_CODE , B.CODE_NAME AS GROUP_NAME , A.CODE_NAME AS CODE_NAME , A.SUB_CODE AS SUB_CODE , A.BIGO1 AS BIGO FROM BASECODE AS A INNER JOIN ( SELECT CODE_NAME , MAIN_CODE FROM BASECODE WHERE SUB_CODE = '000' GROUP BY CODE_NAME, MAIN_CODE ) AS B ON A.MAIN_CODE = B.MAIN_CODE WHERE A.MAIN_CODE LIKE ISNULL(RTRIM(@MAIN_CODE), '') + '%' AND A.CODE_NAME LIKE ISNULL(@QUERY, '') + '%' AND A.SUB_CODE != '000' AND A.DISPLAYYN != '0' ORDER BY A.ORDERBY, A.TOTAL_CODE ASC END --// 인사정보 ELSE IF (@CODEHELPERTYPE = 'HR') BEGIN SELECT UserID AS TOTAL_CODE , UserName AS CODE_NAME FROM TBL_USER WHERE UserType = @RESERVED1 END --//////////////////// 비즈니스로직 : E //////////////////// END Error: --IF @@ERROR <> 0 -- ROLLBACK TRAN --ELSE -- COMMIT TRAN GO
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="BoundDDL.aspx.cs" Inherits="BANANA.Web.Framework.Test.jmson.BoundDDL" %> <!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>SetListItem</title> </head> <body> <form id="form1" runat="server"> <div> <asp:DropDownList ID="DropDownList1" runat="server" /> <asp:RadioButtonList ID="RadioButtonList1" runat="server" /> <asp:CheckBoxList ID="CheckBoxList1" runat="server" /> </div> </form> </body> </html>
/// <summary> /// [DropDownList:SQL Server] 드랍다운리스트 바인딩 /// </summary> /// <param name="DropDownList">드랍다운리스트</param> /// <param name="CodeHelperType">코드헬퍼 종류</param> /// <param name="MainCode">메인코드</param> public void SetListItem(DropDownList DropDownList, string CodeHelperType, string MainCode) { // DropDownList는 System.Web.UI.WebControls.DropDownList 컨트롤입니다. // CodeHeplerType은 위 프로시저에서 @CODEHELPERTYPE에 해당하는 값입니다. // CodeHelperType을 여러 가지로 나누어서 각각의 Database의 table에 있는 값들을 코드와 코드값의 형태로 반환할 수 있습니다. // 바인딩되는 값은 꼭!!! 코드는 TOTAL_CODE로, 코드값은 CODE_NAME으로 반환해 주세요. // MainCode는 BASECODE에서 데이터를 조회할 때에만 사용합니다. // BASECODE 테이블에서 MAIN_CODE 컬럼으로 필터링 할때에 사용합니다. } /// <summary> /// [DropDownList:SQL Server] 드랍다운리스트 바인딩 /// </summary> /// <param name="DropDownList">드랍다운리스트</param> /// <param name="CodeHelperType">코드헬퍼 종류</param> /// <param name="MainCode">메인코드</param> /// <param name="IsFirstRowEmpty">첫 아이템을 공백으로 비울 것인지 여부</param> public void SetListItem(DropDownList DropDownList, string CodeHelperType, string MainCode, bool IsFirstRowEmpty) { // IsFirstRowEmpty가 true이면, 첫 행에 공백값을 가지는 ListItem을 추가합니다. } /// <summary> /// [DropDownList:SQL Server] 드랍다운리스트 바인딩 /// </summary> /// <param name="DropDownList">드랍다운리스트</param> /// <param name="CodeHelperType">코드헬퍼 종류</param> /// <param name="MainCode">메인코드</param> /// <param name="Reserved1">예비필드1</param> /// <param name="Reserved2">예비필드2</param> /// <param name="Reserved3">예비필드3</param> /// <param name="IsFirstRowEmpty">첫 아이템을 공백으로 비울 것인지 여부</param> public void SetListItemS(DropDownList DropDownList, string CodeHelperType, string MainCode, string Reserved1, string Reserved2, string Reserved3, bool IsFirstRowEmpty) { // Reserved1 ~ 3은 예비필드1 ~ 3입니다. // 프로시저에 @RESERVED1 ~ 3까지 전달되는 항목들입니다. }
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace BANANA.Web.Framework.Test.jmson { public partial class BoundDDL : BANANA.Web.BasePage { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { try { base.SetListItem( DropDownList1 , "COMMON" , "A01" ); base.SetListItem( DropDownList1 , "HR" , "" , "BONSA" , "" , "" , true ); } catch (Exception err) { MessageBox.Show(err.HelpLink + "<br />" + err.Message , "Error" , MessageBox.MessageBoxType.Alert , MessageBox.MessageBoxIcon.Error ); } } } } }