2009-12-03 6 views
0

제목으로, 한 번 클릭 한 후 gridview에서 선택 단추 텍스트를 비활성화하려면 어떻게합니까? 한 번 클릭 한 다음 선택 셀 영역에 이미지를 렌더링하고 이미지를 클릭 할 수 없거나 아무 것도 연결하지 않도록합니다.한 번 클릭하여 gridview에서 선택 버튼 텍스트를 비활성화하려면 어떻게합니까? (ASP.NET)

아이디어가 있으십니까?

protected void Page_Load(object sender, EventArgs e) 
{ 
    dn = new holdDataContext(); 
    if (!(Page.IsPostBack)) 
    { 

     // GridView1.DataSource = dn.tennis.ToList(); 
     // GridView1.DataBind(); 
     GridView1.DataSource = from c in dn.tennis 
           orderby c.ID descending 
           select c; 

     GridView1.DataBind(); 
    } 
} 

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    DataSet ds = null; 
    if (Session["oro"] == null) 
    { 
     ds = new DataSet(); 
     DataTable dt = new DataTable(); 
     dt.Columns.Add(new DataColumn("Name")); 
     dt.Columns.Add(new DataColumn("Description")); 
     ds.Tables.Add(dt); 
     Session["oro"] = ds; 
    } 
    else 
    { 
     ds = (DataSet)Session["oro"]; 
    } 
    DataRow row = ds.Tables[0].NewRow(); 
    row["Name"] = GridView1.Rows[GridView1.SelectedIndex].Cells[2].Text; 
    row["Description"] = GridView1.Rows[GridView1.SelectedIndex].Cells[3].Text; 
    ds.Tables[0].Rows.Add(row); 

} 
+0

@chris, 내 대답을 끝내기 전까지 코드를 풀 때까지 삭제했습니다. 희망적으로 누군가가 당신을위한 해결책을 제공 할 수 있습니다. –

+0

감사합니다. 그리고 지금까지 도와 주셔서 감사합니다.) – chris

+0

아무런 문제가 없으므로 곧 취소 할 수 있습니다. 실제로 일하고 있습니다. :피 –

답변

0

당신은 영문 마크 업 및 코드 숨김의 조합이 필요합니다 :

영문 :

<asp:GridView ID="gvSample" runat="server" 
     DataKeyNames="CustomerID" 
     onselectedindexchanged="gvSample_SelectedIndexChanged"> 
     <Columns> 
      <asp:TemplateField> 
       <ItemTemplate> 
        <asp:LinkButton ID="btnSelect" runat="server" CommandName="Select" Text="Select"></asp:LinkButton> 
        <asp:Image ID="imgSelect" runat="server" ImageUrl="~/imgs/whatever.jpg" Visible="false" /> 
       </ItemTemplate> 

코드 숨김 : 그래서

protected void gvSample_SelectedIndexChanged(object sender, EventArgs e) { 
    LinkButton linkButton = gvSample.SelectedRow.Cells[0].FindControl("btnSelect") as LinkButton; 
    Image imgWhatever = gvSample.SelectedRow.Cells[0].FindControl("imgSelect") as Image; 
    linkButton.Enabled = false; 
    linkButton.Visible = false; 
    imgWhatever.Visible = true; 
} 

의 ItemTemplate을의 GridView의 마크 업과 함께 선택 버튼을 바꾸지 만 보이지 않게 한 다음, 선택 버튼을 비활성화합니다. 선택 단추를 클릭 할 때 트리거되는 코드 숨김의 이벤트 핸들러 메서드 gvSample_SelectedIndexChanged 내에서 두 객체 사이의 가시성을 바꿔 이미지의 레이스를 만듭니다. FindControl은 Control 유형의 객체를 반환하므로 선택 버튼의 LinkButton 유형으로 캐스팅해야합니다.

관련 문제