반응형
으하하하.
다시 나를 불태우게 만드는 Create 작업을 다시 시작하게 되었다.
월요일 업무보고를 하던 중 보고가 아닌 바로 실행이 되어버려 작업리스트는 쭉쭉쭉 완료가 채워진 것이 바로 그 이유!
테스트만 남은 작업이 있긴 하다만... 정말 말 그대로 테스트 작업은 문제가 언제 나올지도, 너무 완벽해서 문제 따위 생기지 않을지도 모르는 일을 반복하고 있자니 머리가 굳다 못해 뇌가 저릴지경이다.
원석대리님께서 퇴사하시기 전에 남겨주시고 간 숙제!
Dream Community 의 Promise!
나의 부족한 업무능력으로 여태 정신없이 일을 했지만 지금은 반복업무(?)를 하고 있는 중이기 때문에 다른 문제가 생기기 이전까지는 Dream Community 의 Promise 부분을 보안하는 작업을 병행하기로 결정내렸음.ㅎㅎ
내가 고새 성장했단 말인가?
6월달에 진행했던 것이 2개월 지났다고 허접해 보인다.
이전에 계획했던 부분을 기반으로 다시 Create 한 WorkList!
다시 진행을 하는 부분이라서인지 전 보다 빨리 진행되는 듯하다.
페이지 새로 생성.
Create_Page
WorkList.aspx
WorkList.aspx.cs
데이터베이스 테이블.
Create_Table
AC_MEMBER
AC_GROUP
BS_WORK_LIST
BS_CONTENTS_FILES
BS_WORK_STATUS
BS_CONTENTS_TYPE
페이지에 GridView 를 추가했고
WorkList.aspx
<asp:GridView ID="W_List" runat="server" AutoGenerateColumns="False" AllowPaging="True">
<Columns>
<asp:BoundField HeaderText="Shenme1" DataField="FieldName1" />
........etc
</Columns>
</asp:GridView>
위 Column 종류 이외에도 asp:CommandField, asp:ButtonField, asp:CheckBoxField, asp:HyperLinkField, asp:ImageField, asp:TemplateField 가 있으며 CommandField 컨트롤은 편집,삭제 등의 기능을 하는 버튼이다.
위 Column 종류 이외에도 asp:CommandField, asp:ButtonField, asp:CheckBoxField, asp:HyperLinkField, asp:ImageField, asp:TemplateField 가 있으며 CommandField 컨트롤은 편집,삭제 등의 기능을 하는 버튼이다.
이전 처럼 DataSource 컨트롤은 사용하지 않고 cs 에서 페이지를 불러올 때 Binding 하여 GridView 에 List 값을 출력할 것이다.
WorkList.aspx.cs
protected void GridView_Binding()
{
string conString = ConfigurationManager.ConnectionStrings["ConnectionString_name"].ConnectionString;
string sql = "ShenmeShenme Query...";
{
string conString = ConfigurationManager.ConnectionStrings["ConnectionString_name"].ConnectionString;
string sql = "ShenmeShenme Query...";
SqlConnection sc = new SqlConnection(conString);
sc.Open();
sc.Open();
SqlCommand scm = new SqlCommand(sql, sc);
SqlDataAdapter SDA = new SqlDataAdapter();
SDA.SelectCommand = scm;
SDA.SelectCommand = scm;
DataSet DS = new DataSet();
SDA.Fill(DS, "List_Select");
SDA.Fill(DS, "List_Select");
W_List.DataSource = DS.Tables["List_Select"];
W_List.DataBind();
W_List.DataBind();
}
끄~으~읕? NoNoNoNo!!! 벌써 끝나면 섭하시죠.
세부 사항을 살펴 봅세다.
편집을 하기 위해서 GridView의 Columns의 asp:CommandField 를 추가하였다.
<asp:CommandField HeaderText="편집" ShowEditButton="true" EditText="편집" UpdateText="수정" />
요런 모양새로 촨! 나타났다. 편집을 누르면 SqlDataSource 컨트롤에 적용시킨 부분이 없기 때문에 RowEditing 이벤트 정의가 되어 있지 않아 오류메시지가 출력된다.
그렇담 어떻게 해결해야 할까?
말 그대로 이벤트가 필요한 부분은 이벤트 정의를 해 주고, 내가 원하는 이벤트 실행을 하도록 키를 정성스레 눌러주면 된다.
이벤트 | 설정 |
protected void TaskGridView_RowEditing(object sender, GridViewEditEventArgs e) | TaskGridView.EditIndex = e.NewEditIndex; (발생한 이벤트객체의 인덱스를 주어 해당 Row에 편집을 설정한다.) |
protected void TaskGridView_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) | TaskGridView.EditIndex = -1; (객체의 편집인덱스의 설정을 해제한다.) |
protected void TaskGridView_RowUpdating(object sender, GridViewUpdateEventArgs e) |
GridViewRow row = TaskGridView.Rows[e.RowIndex]; dt.Rows[TaskGridView.EditIndex]["Id"] = ((TextBox)(row.Cells[1].Controls[0])).Text; dt.Rows[TaskGridView.EditIndex]["Description"] = ((TextBox)(row.Cells[2].Controls[0])).Text; dt.Rows[TaskGridView.EditIndex]["IsComplete"] = ((CheckBox)(row.Cells[3].Controls[0])).Checked; TaskGridView.EditIndex = -1; (GridView의 행 객체를 해당객체의 행을 할당하여 값을 편집하고 편집인덱스 설정을 해제한다.) |
msdn 참고 : http://msdn.microsoft.com/ko-kr/library/system.web.ui.webcontrols.gridview.rowediting.aspx
반응형
'프로그래밍' 카테고리의 다른 글
Create Sea's WorkList (2) (0) | 2009.09.03 |
---|
댓글