2012-01-04 9 views
1

我有一個網格視圖下如何隱藏一個文本框控件,當點擊一個linkbutton這些都是子控件gridview?

<asp:GridView ID="dgTask" runat="server" Width="100%" 
      AutoGenerateColumns="False" onrowdatabound="dgTask_RowDataBound"> 
      <Columns> 
       <asp:BoundField DataField="TaskID" HeaderText="TaskID" ItemStyle-Width="1%" /> 
       <asp:BoundField DataField="TaskName" HeaderText="Task Name" ItemStyle-HorizontalAlign="left" 
        ItemStyle-Width="10%" /> 
       <asp:BoundField DataField="PriorityName" HeaderText="Priority" ItemStyle-HorizontalAlign="center" 
        ItemStyle-Width="10%" /> 
       <asp:BoundField DataField="StatusName" HeaderText="Status" ItemStyle-HorizontalAlign="center" 
        ItemStyle-Width="10%" /> 
       <asp:TemplateField HeaderText="Edit Task" ItemStyle-Width="10%"> 
        <ItemTemplate> 
         <asp:LinkButton ID="lnkBtnEdit" runat="Server" Text="Edit" CommandArgument ='<%# Eval("TaskID") %>' /> 
         <asp:TextBox ID="txtId" runat="server"></asp:TextBox> 
        </ItemTemplate> 
       </asp:TemplateField> 
      </Columns> 
     </asp:GridView> 

現在,我要做的是,在LinkBut​​ton的的單擊事件,我需要隱藏文本框控件該行。

如何做?

到目前爲止,我已經照下

protected void dgTask_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      LinkButton btnEdit = (LinkButton)e.Row.Cells[4].FindControl("lnkBtnEdit"); 
      btnEdit.Attributes.Add("onclick", "return Test();"); 
     } 
    } 

感謝

回答

1

你是在正確的軌道上,只是使調用javascript函數小的變化,也可以添加如下的JavaScript功能。

protected void dgTask_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      LinkButton btnEdit = (LinkButton)e.Row.Cells[4].FindControl("lnkBtnEdit"); 
      TextBox txtId = (TextBox)e.Row.Cells[4].FindControl("txtId"); 
      btnEdit.Attributes.Add("onclick", "return Test("'" + txtId.ClientId + "'");"); 
     } 
    } 

並加入Javascript這樣的方式,

function Test(var txtId) 
{ 
    var inputtxt = document.getElementById(txtId); 
    if(inputtxt != null) 
    { 
     inputtxt.Attributes.Add("style","display:none;"); 
    } 

} 
0

試試這個:

protected void LinkButton1_Click(object sender, EventArgs e) 
    { 
     LinkButton b = (LinkButton)sender; 
     GridViewRow r = (GridViewRow)b.NamingContainer; 
     ((TextBox)(GridView1.Rows[r.RowIndex].Cells[0].FindControl("TextBox1"))).Visible = false; 
    } 
相關問題