2012-12-17 223 views
1

我們在帶有GridView的ASP.Net Web窗體上有一個命令按鈕,用戶將GridView中顯示的數據作爲電子郵件發送。使用ASP.Net命令按鈕隱藏或隱藏代碼隱藏編碼

在這個GridView是一個「選擇」命令按鈕,我們想暫時從GridView中刪除,當用戶單擊一個圖像按鈕,並且當該電子郵件已被髮送時再次出現該按鈕。

我們希望刪除該按鈕,因爲它顯示在我們不希望包含在電子郵件中的電子郵件中呈現。

你能告訴我如何在代碼隱藏文件中使用編碼來刷新沒有按鈕的GridView嗎?

下面是該按鈕一些標記:

   <asp:TemplateField ShowHeader="False"> 
        <ItemTemplate> 
         <asp:Button 
          ID="ButtonSelect" 
          runat="server" 
          CausesValidation="False" 
          CommandName="Select" 
          Text="Select Schedule Item Details" /> 
        </ItemTemplate> 

這是我們正在使用的編碼發送出的GridView的電子郵件:

Protected Sub ImageButtonEmailThisList_Click(sender As Object, e As ImageClickEventArgs) 

    ' Get the rendered HTML. 
    '----------------------- 
    Dim SB As New StringBuilder() 
    Dim SW As New StringWriter(SB) 
    Dim htmlTW As New HtmlTextWriter(SW) 

    ' Remove the select button for a short while. 
    '-------------------------------------------- 

    GridViewSummary.RenderControl(htmlTW) 

    ' Get the HTML into a string. 
    ' This will be used in the body of the email report. 
    '--------------------------------------------------- 
    Dim dataGridHTML As String = SB.ToString() 
    Dim SmtpServer As New SmtpClient() 

    ObjMailMessage = New MailMessage() 

    Try 
     With ObjMailMessage 
      .To.Add(New MailAddress(TextBoxEmailRecipient.Text)) 
      .Subject = "Knowledge Academy Teacher's Schdule" 
      .Body = dataGridHTML 
      .IsBodyHtml = True 
      .DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure 
     End With 

     SmtpServer.Send(ObjMailMessage) 

     LabelEmailMessage.Text = "<i>Email sent to " & TextBoxEmailRecipient.Text & "!</i>" 

     ImageButtonEmailThisList.Visible = True 

    Catch ex As Exception 
     MsgBox(ex.ToString()) 

    Finally 

     ' Refresh the GridView with select button back in place. 
     '------------------------------------------------------- 

    End Try 

End Sub 

的註釋部分顯示在這裏我們想添加編碼以再次隱藏和顯示按鈕。

回答

3

也許你可以隱藏的列:

GridViewSummary.Columns(11).Visible = False 

然後:

GridViewSummary.Columns(11).Visible = True 
+0

完美!感謝這樣一個快速和有益的答覆。 :-) –

+0

我剛剛做到了。我之前試圖做到這一點,但他們似乎限制了我們能夠將答案標記爲接受的時間。我希望我能給你更多的1票,但似乎也受到限制。再次感謝您的幫助如此之快。 :-) –

+0

順便說一句。是否可以使用按鈕的實際ID而不是按鈕的「索引」值? –