아이콘 버튼 사용자 컨트롤은 다음과 같은 일반적인 작업을 위해 개발되었습니다.
-------------
페이지는 전체 저장 기능을 구현하기 위해 [아이콘 + 버튼] 또는 [이미지 버튼]을 저장했습니다. 저장 작업을 클릭한 후 페이지의 해당 필드에 대한 js 검증을 먼저 수행한 후 검증 후 백그라운드 제출을 수행할 수 있습니다. onmouseover 및 기타 이벤트에 따른 스타일 변경에 응답할 수 있습니다.
개발된 아이콘 버튼 사용자 컨트롤은 최소한 다음 기능 요구 사항을 충족해야 합니다.
-----------------------------
1. 아이콘 + 텍스트로 구성
아이콘의 경로를 비워두도록 수정할 수 있습니다. 즉, 아이콘이 없음을 의미합니다.
텍스트 표시를 수정할 수 있습니다.
2. 전체 시스템은 해당 페이지의 "아이콘 버튼"에 대해 설정된 js의 onclick 이벤트에 응답하고 처리해야 합니다.
처리해야 할 onclick 이벤트가 없으면 처리되지 않습니다.
3. 서버의 OnClick 이벤트에 응답하고 처리해야 하는 전반적인 필요성
처리해야 할 OnClick 이벤트가 없으면 처리되지 않습니다.
4. 전체 응답을 비활성화해야 합니다.
Visible은 컨트롤 자체에 내재되어 있습니다.
5. onmouseover와 같은 이벤트에 따른 스타일 변경에 대응해야 합니다.
다음은 방법에 대한 간략한 설명입니다.
1. [아이콘 텍스트 버튼] 사용자 컨트롤을 만듭니다.
컨트롤에는 다음과 같은 부분이 포함되어 있습니다.
테이블 레이아웃 제어,
동적으로 출력되는 이미지를 위한 자리 표시자,
동적으로 출력되는 텍스트를 위한 자리 표시자
OnClick 이벤트에 대한 응답으로 실행되는 숨겨진 버튼
<테이블>
<tr runat="서버" id="tr1" 스타일="커서:손;"
<TD>
<asp:Literal ID="Literal1" runat="server"></asp:Literal>
</td>
<TD>
<asp:Literal ID="Literal2" runat="server"></asp:Literal>
</td>
</tr>
</table>
<asp:Button ID="Button1" runat="server" Text="Button" style="display:none; width:0; height:0;" OnClick="Button1_Click" />
관련 onmouseover 스타일 처리를 테이블에 추가할 수 있습니다.
다음과 같은 관련 속성 및 처리를 포함합니다.
공개 부분 클래스 WebUserControl : System.Web.UI.UserControl
{
#region 속성 및 이벤트
//아이콘 텍스트 버튼 사용자 컨트롤의 버튼 텍스트
string _strButtonText = "버튼 자리 표시자";
공개 문자열 strButtonText
{
설정 { _strButtonText = 값 }
{ return _strButtonText }를 얻습니다.
}
//아이콘 텍스트 버튼 사용자 컨트롤의 아이콘 경로
문자열 _strImageSrc = "";
공개 문자열 strImageSrc
{
설정 { _strImageSrc = 값 }
{ return _strImageSrc }를 얻습니다.
}
//컨트롤이 비활성화되었습니다.
bool _UCDisabled = 거짓;
공개 boolUC 비활성화됨
{
세트
{
this.tr1.Disabled = 값;
_UCDisabled = 값;
}
get { return _UCDisabled }
}
//onclick js 이벤트에 응답하는 처리 함수
문자열 _strOnClickJSFun = "";
공개 문자열 strOnClickJSFun
{
설정 { _strOnClickJSFun = 값 }
get { return _strOnClickJSFun };
}
//서버측 OnClick 이벤트에 대한 응답
공개 대리자 void userEvent(객체 전송자, EventArgs e);
공개 이벤트 userEvent UCOnClick;
protected void Button1_Click(객체 전송자, EventArgs e)
{
if (this.UCOnClick != null)
this.UCOnClick(this, e);
}
#endregion
protected void Page_Load(개체 전송자, EventArgs e)
{
if (!IsPostBack)
{
if (_strButtonText != "")
{
this.Literal2.Text = _strButtonText;
}
if (_strImageSrc != "")
{
this.Literal1.Text = "<img id='" + this.UniqueID + "Image1' src='" + _strImageSrc + "' />";
}
if(UC 비활성화됨)
반품;
if (_strOnClickJSFun != "")
{
string strjsfun = _strOnClickJSFun.Replace(";", "").Replace("return ", "");
if (this.UCOnClick != null)
{
this.tr1.Attributes.Add("onclick", "if(" + strjsfun + "){document.all." + this.UniqueID + "_Button1.click();}");
}
또 다른
{
this.tr1.Attributes.Add("onclick", strjsfun);
}
}
또 다른
{
if (this.UCOnClick != null)
{
this.tr1.Attributes.Add("onclick", "document.all." + this.UniqueID + "_Button1.click();");
}
}
}
}
}
2. [아이콘 텍스트 버튼] 사용자 컨트롤을 사용하십시오
<uc1:WebUserControl ID="WebUserControl1" runat="서버" OnUCOnClick="Button1_Click" strOnClickJSFun="return fn_Check();"
strButtonText="수정" strImageSrc="../Images/Edit.gif" />