搜尋此網誌

2012年7月3日 星期二

變更ListItem的底色

此範例是用ListBox當例子
由於案子需求,需要變更ListBox中某幾項的底色

 For Each row As ListItem In  ListBox .Items
       If  條件  Then
            row.Attributes("style") = "background-color:#DCDCDC"
       End If
 Next

但該方法有個問題就是每次AutoPostBack後顏色會消失
所以建議寫在共用FUNCTION中每次刷新時呼叫

2012年7月2日 星期一

關於使用ModalPopupExtender來製作popup視窗

在aspx中宣告
1.<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="asp" %>
2.

<asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server"
   TargetControlID="觸發的按鈕名稱"
   BackgroundCssClass="popupBackground"
   PopupControlID="Panel名稱"
   DropShadow="true" >
</asp:ModalPopupExtender>
假如你是要在開啟的popup視窗中先做事件在開
那麼這邊是建議
先製作一個LinkButton
<asp:LinkButton ID="LModal" runat="server"></asp:LinkButton>
LinkButton在畫面上是看不到是給asp:ModalPopupExtender 使用而以
3.
假如你的程式有包UpdatePanel的話
那麼請記得Panel中也要包
否則欄位會有異常狀況
筆者之前碰過不是打不開不然就是值沒有塞進去


在VB
Button事件中
Protected Sub Button名稱_Click
(ByVal sender As Object, ByVal e As EventArgs) Handles  Button 名稱.Click
ModalPopupExtender1.Show()  <--開啟popup
end sub

關閉popup則是執行
ModalPopupExtender1.Hide()






GridView 中 RadioButton單選(後端)

基本上GridView中的AutoPostBack 事件皆可使用
前端ASPX
 1.包asp:UpdatePanel 
    <asp:UpdatePanel ID="UpdatePanel12" runat="server" >
    <ContentTemplate>
    </ContentTemplate> 
    </asp:UpdatePanel> 
2.在GridView的RadioButton裡宣告OnCheckedChanged,AutoPostBack="true"
   EX:OnCheckedChanged="opt_CheckedChanged" AutoPostBack ="true"
後端
Protected Sub opt_CheckedChanged (ByVal sender As Object, ByVal e As EventArgs)
 Try
     Dim tempRadioButton As New RadioButton
     tempRadioButton = CType(sender, RadioButton)
     Dim gvRow As GridViewRow
     gvRow = CType(tempRadioButton.NamingContainer, GridViewRow)
     If Not (gvRow Is Nothing) Then
        Dim index As Integer = gvRow.RowIndex
        For i As Integer = 0 To  GridView名稱.Rows.Count - 1
        If  i <> index Then
            If CType( GridView名稱.Rows(i).Cells(0).FindControl("RadioButton名稱"), RadioButton).Checked Then
                CType( GridView名稱 .Rows(i).Cells(0).FindControl(" RadioButton名稱 "), RadioButton).Checked = False
            End If
        End If
        Next
     End If
 Catch ex As Exception
 
 End Try
End Sub

UserControl事件觸發然後執行父網頁事件


UserControl 中宣告  
Public Delegate Sub Parent_EventHandler(ByVal sender As Object, ByVal e As System.EventArgs)
Public Event UsercontrolSelectEvent As Parent_EventHandler
然後在要觸發的事件中宣告
EX:

Protected Sub DropDownList名稱 _SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles DropDownList名稱.SelectedIndexChanged
        RaiseEvent UsercontrolSelectEvent(sender, e)
End Sub

在使用UserControl 的VB中
Page_Load裡宣告
AddHandler Me.UserControl名稱.UsercontrolSelectEvent, AddressOf  UsercontrolSelectEvent_proc
然後事件即可使用
Private Sub UsercontrolSelectEvent_proc(ByVal sender As Object, ByVal e As System.EventArgs)


 End Sub




參考:
http://blog.xuite.net/sugopili/computerblog/43063784-UserControl%E5%82%B3%E5%80%BC%E3%80%81%E5%9F%B7%E8%A1%8C%E7%88%B6%E7%B6%B2%E9%A0%81%E4%BA%8B%E4%BB%B6