搜尋此網誌

2012年11月30日 星期五

AutoPostBack後ListBox的scroll不動


網路上的找到的方法:
aspx端 javascript 
function autoscroll() {
   var list = document.getElementById("ListBox名稱");
   //找到ListBox物件(使用檢視原碼碼去找ID比較準確)  
               
   if (!list || !list.multiple || list.length == 0) return;
      var lastItem = list[list.length - 1];
          
      if (lastItem.selected) {
          lastItem.selected = true;               
          return;
      }
      else {
          lastItem.selected = true;
          lastItem.selected = false;
          }
          for (var i = 0; i < list.length; i++) {
          if (list[i].selected) // or list.selected ?  
             {
              list[i].selected = true;                    
              return;
             }
          }
     }

vb端
 Page.RegisterStartupScript("MyScript""<Script language=javascript defer='true'> autoscroll() </script>")

目前測試結果不包UpdatePanel運作正常包了則無作用


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







2012年1月3日 星期二

GOOGLE+1語法


<script> 
          (function(d, t)
             {
                 var g = d.createElement(t), s = d.getElementsByTagName(t)[0]; g.async = true; g.src =   
                 'https://apis.google.com/js/plusone.js'; s.parentNode.insertBefore(g, s); 
              }
          )
          (document, 'script');
</script>


 -- 按鈕---
 <g:plusone></g:plusone>    

2012年1月2日 星期一

讀取文字檔


            以下範例是將文字檔讀出然後變更斷行符號
            1.使用LineInput 每一行每一行讀取
            FileNum = FreeFile()
            FileOpen(FileNum, strRFile, OpenMode.Input)


            Do Until EOF(FileNum)
                strTemp &= LineInput(FileNum) & vbNewLine
            Loop
            FileClose(FileNum)
            FileNum = FreeFile()
            FileOpen(FileNum, NewValue, OpenMode.Output)
            PrintLine(FileNum, strTemp)
            FileClose(FileNum)


            2.使用ReadToEnd 
             Dim value As String = ""
             Dim MySF As StreamReader = New StreamReader(strRFile, System.Text.Encoding.Default)
             value = MySF.ReadToEnd().Replace(vbLf, vbCrLf)