Korang boleh merge cell untuk header gridview menggunakan function SetRenderMethodDelegate.
Tengok sample code kat bawah
Ni code yang aku dah convert ke vb.net (code asal c# boleh dirujuk di http://marss.co.ua/MergingGridViewHeaderColumns.aspx)
'//yang ni takperlu ubah ape2
'===========================
<Serializable()> _
Private Class MergedColumnsInfo
' indexes of merged columns
Public MergedColumns As New List(Of Integer)()
' key-value pairs: key = first column index, value = number of merged columns
Public StartColumns As New Hashtable()
' key-value pairs: key = first column index, value = common title of merged columns
Public Titles As New Hashtable()
'parameters: merged columns's indexes, common title of merged columns
Public Sub AddMergedColumns(ByVal columnsIndexes As Integer(), ByVal title As String)
MergedColumns.AddRange(columnsIndexes)
StartColumns.Add(columnsIndexes(0), columnsIndexes.Length)
Titles.Add(columnsIndexes(0), title)
End Sub
End Class
'property for storing of information about merged columns
Private ReadOnly Property info() As MergedColumnsInfo
Get
If ViewState("info") Is Nothing Then
ViewState("info") = New MergedColumnsInfo()
End If
Try
Return DirectCast(ViewState("info"), MergedColumnsInfo)
Catch ex As Exception
Return Nothing
End Try
End Get
End Property
'method for rendering of columns's headers
Private Sub RenderHeader(ByVal output As HtmlTextWriter, ByVal container As Control)
For i As Integer = 0 To container.Controls.Count - 1
Dim cell As TableCell = DirectCast(container.Controls(i), TableCell)
'stretch non merged columns for two rows
If Not info.MergedColumns.Contains(i) Then
cell.Attributes("rowspan") = "2"
cell.RenderControl(output)
'render merged columns's common title
ElseIf info.StartColumns.Contains(i) Then
output.Write(String.Format("{1}", info.StartColumns(i), info.Titles(i)))
End If
Next
'close first row
output.RenderEndTag()
'set attributes for second row
gview1.HeaderStyle.AddAttributesToRender(output)
'start second row
output.RenderBeginTag("tr")
'render second row (only merged columns)
For i As Integer = 0 To info.MergedColumns.Count - 1
Dim cell As TableCell = DirectCast(container.Controls(info.MergedColumns(i)), TableCell)
cell.RenderControl(output)
Next
End Sub
'kat event GridView_RowCreated() 'ni pun tak perlu ubah aper2
=========================
If e.Row.RowType = DataControlRowType.Header Then
e.Row.SetRenderMethodDelegate(AddressOf RenderHeader)
End If
'kat page_load event 'sini aje kalau nak set cell mane nak merge
================
If Not IsPostBack Then
info.AddMergedColumns(New Integer() {3, 4, 5}, "any text column baru") 'ni akan merge cell 3,4,5
'kalau nak merge lagi,just put same statement here
End If
note:so korang tak perlu pening2 buat kat itemTemplateField.
ko rang boleh copy sourcecode dari sumber asalnya dan test tengok hasilnya.Thanks to the coder!
Lagi satu,kalau tengah debug,kalau korang ubah any property value kat boundfield,korang kena run balik.so best practise,jgn ubah waktu application tgh running.
Friday, March 27, 2009
Wednesday, March 25, 2009
Event Not Fired When Click Event Handler
mungkin berlaku masalah bila event handler korang tak fire event bila guna ajax.
caranya,try letak Trigger control kat page korang dan Set kan ControlId Property kepada eventhandler id.
contohnya
<Triggers>
<asp:PostBackTrigger ControlID="btnSave" />
</Triggers>
...
<asp:button id="btnSave" runat="server" />
caranya,try letak Trigger control kat page korang dan Set kan ControlId Property kepada eventhandler id.
contohnya
<Triggers>
<asp:PostBackTrigger ControlID="btnSave" />
</Triggers>
...
<asp:button id="btnSave" runat="server" />
Labels:
Programming
Error When Using Response Object Withing UpdatePanel Object
korang akan dapat error at run time bila cuba untuk guna response.xxx object bilamana event handler yang fire event(contohnya asp:button) berada dalam updatePanel tag.
at the code
...
sub mybtn_onclick(xxx,xxx) handles...
response.write("bla bla") 'ni akan sebabkan error run time
end sub
...
sub mybtn_onclick(xxx,xxx) handles...
response.write("bla bla") 'ni akan sebabkan error run time
end sub
Labels:
Programming
T-SQL Using Pivot To Matrix Data
CREATE TABLE #temp123
(
Country varchar(15),
Variable varchar(20),
VaribleValue INT
)
INSERT INTO #temp123 VALUES ('North America','Sales','2000000')
INSERT INTO #temp123 VALUES ('North America','Expenses','1250000')
INSERT INTO #temp123 VALUES ('North America','Taxes','250000')
INSERT INTO #temp123 VALUES ('North America','Profit','500000')
INSERT INTO #temp123 VALUES ('Europe','Sales','2500000')
INSERT INTO #temp123 VALUES ('Europe','Expenses','1250000')
INSERT INTO #temp123 VALUES ('Europe','Taxes','500000')
INSERT INTO #temp123 VALUES ('Europe','Profit','750000')
INSERT INTO #temp123 VALUES ('South America','Sales','500000')
INSERT INTO #temp123 VALUES ('South America','Expenses','250000')
INSERT INTO #temp123 VALUES ('Asia','Sales','800000')
INSERT INTO #temp123 VALUES ('Asia','Expenses','350000')
INSERT INTO #temp123 VALUES ('Asia','Taxes','100000')
/** Show original table **/
SELECT * FROM #temp123
/** Create crosstab using PIVOT **/
SELECT *
FROM #temp123
PIVOT
(
SUM(VaribleValue)
FOR [Variable]
IN ([Sales],[Expenses],[Taxes],[Profit])
)
AS p
DROP TABLE #temp123
--TO ALLOW USING PIVOT COMMAND
--EXEC dbo.sp_dbcmptlevel @dbname=N'PromiseLive', @new_cmptlevel=90
(
Country varchar(15),
Variable varchar(20),
VaribleValue INT
)
INSERT INTO #temp123 VALUES ('North America','Sales','2000000')
INSERT INTO #temp123 VALUES ('North America','Expenses','1250000')
INSERT INTO #temp123 VALUES ('North America','Taxes','250000')
INSERT INTO #temp123 VALUES ('North America','Profit','500000')
INSERT INTO #temp123 VALUES ('Europe','Sales','2500000')
INSERT INTO #temp123 VALUES ('Europe','Expenses','1250000')
INSERT INTO #temp123 VALUES ('Europe','Taxes','500000')
INSERT INTO #temp123 VALUES ('Europe','Profit','750000')
INSERT INTO #temp123 VALUES ('South America','Sales','500000')
INSERT INTO #temp123 VALUES ('South America','Expenses','250000')
INSERT INTO #temp123 VALUES ('Asia','Sales','800000')
INSERT INTO #temp123 VALUES ('Asia','Expenses','350000')
INSERT INTO #temp123 VALUES ('Asia','Taxes','100000')
/** Show original table **/
SELECT * FROM #temp123
/** Create crosstab using PIVOT **/
SELECT *
FROM #temp123
PIVOT
(
SUM(VaribleValue)
FOR [Variable]
IN ([Sales],[Expenses],[Taxes],[Profit])
)
AS p
DROP TABLE #temp123
--TO ALLOW USING PIVOT COMMAND
--EXEC dbo.sp_dbcmptlevel @dbname=N'PromiseLive', @new_cmptlevel=90
Labels:
Programming
T-SQL Row_Number With Group By Clause
kalau nak kuarkan row number dan row number reset bila new group
1. kalau nak row number desc order
-------------------------
SELECT * FROM
(
SELECT row_number() OVER (PARTITION BY XColumn
ORDER BY COUNT(XColumn)) as RowNumber,XColumn,YColumn,ZColumn
from XYZTable
GROUP BY XColumn,YColumn,ZColumn
)a
ORDER BY XColumn,RowNumber desc
2. kalau nak asc order
-------------------------------------------------
SELECT row_number() OVER (PARTITION BY XColumn
ORDER BY COUNT(XColumn)) as RowNumber,XColumn,YColumn,ZColumn
from XYZTable
GROUP BY XColumn,YColumn,ZColumn
NOTE : berguna untuk kira total count per group,running total etc
1. kalau nak row number desc order
-------------------------
SELECT * FROM
(
SELECT row_number() OVER (PARTITION BY XColumn
ORDER BY COUNT(XColumn)) as RowNumber,XColumn,YColumn,ZColumn
from XYZTable
GROUP BY XColumn,YColumn,ZColumn
)a
ORDER BY XColumn,RowNumber desc
2. kalau nak asc order
-------------------------------------------------
SELECT row_number() OVER (PARTITION BY XColumn
ORDER BY COUNT(XColumn)) as RowNumber,XColumn,YColumn,ZColumn
from XYZTable
GROUP BY XColumn,YColumn,ZColumn
NOTE : berguna untuk kira total count per group,running total etc
Labels:
Programming
Monday, November 3, 2008
Apabila Yang Tersembunyi Lebih Dicari
Apabila Mufti Perlis,yang berbahagia Dr Mohd Asri Zainul Abidin menyingkap persoalan berkenaan Tajassus(mengintip) dalam ruangan Bicara Mufti pada hari ahad yang lepas maka sudah tentunya mengundang pelbagai pandangan dari masyarakat pembaca.Secara kesimpulannya ruangan pena itu bermaksud lebih kurangnya perkara-perkara maksiat yang tersembunyi lebih digemari untuk disingkap dan dijengah berbanding perkara-perkara maksiat yang terang lagi nyata.
Saya secara dasarnya amat bersetuju dengan pandangan Dr. Mohd Asri betapa kita(atau pihak berkuasa?) sebenarnya terlalu membiarkan maksiat yang nyata dihadapan mata berlaku,dan lebih menyedihkan seolah menghalalkannya. Contohnya..betapa banyak drama-drama maupun filem—filem kita yang memaparkan aksi-aksi maksiat,berpelukan antara bukan muhrim,bercumbuan,berpakaian tidak senonoh dan sebagainya dibiarkan sahaja sedangkan maksiat-maksiat tersembunyi lebih digemari untuk disingkap.Bukanlah bermaksud ianya harus dibiarkan namun perkara yang utama harus diutamakan.
Selayaknya semua pihak amnya dan pihak berwajib khususnya lebih memandang serius kupasan oleh Dr. Mohd Asri ini demi kebaikan semua pihak.Wallahuallam.
Saya secara dasarnya amat bersetuju dengan pandangan Dr. Mohd Asri betapa kita(atau pihak berkuasa?) sebenarnya terlalu membiarkan maksiat yang nyata dihadapan mata berlaku,dan lebih menyedihkan seolah menghalalkannya. Contohnya..betapa banyak drama-drama maupun filem—filem kita yang memaparkan aksi-aksi maksiat,berpelukan antara bukan muhrim,bercumbuan,berpakaian tidak senonoh dan sebagainya dibiarkan sahaja sedangkan maksiat-maksiat tersembunyi lebih digemari untuk disingkap.Bukanlah bermaksud ianya harus dibiarkan namun perkara yang utama harus diutamakan.
Selayaknya semua pihak amnya dan pihak berwajib khususnya lebih memandang serius kupasan oleh Dr. Mohd Asri ini demi kebaikan semua pihak.Wallahuallam.
Labels:
komentar
Sunday, November 2, 2008
Adab dalam beribadah
assalamualaikum.
Baru-baru ini selepas dalam perjalan balik dari kerja,saya sempat singgah di sebuah surau yang sederhana besar untuk menunaikan solat.Masuk sahaja dalam ruang solat kedengaran seseorang lelaki yang sedang berdoa dengan suara yang agak kuat.Doanya tidaklah salah,cuma menjadi isunya apabila saya melihat terdapat dua lelaki lain sedang menunaikan solat berhampiran dengan lelaki tadi.Jadi apa rasionalnya lelaki berkenaan membaca doa dengan suara yang kuat yang saya kira tentunya menganggu orang lain untuk melakukan ibadah wajib.Nampaknya disini keutamaan dalam melakukan ibadah mungkin sedikit dilupai oleh lelaki tadi.
Perkara ini mengingatkan saya kepada satu peristiwa apabila saya dalam perjalanan pulang dari perantauan ke kampung halaman.Apabila singgah di satu surau di sebuah stesen minyak,keadaan di dalam surau begitu penuh dengan jemaah yang sedang solat.Bagaimanapun pandangan saya lebih tertumpu kepada seorang jemaah yang sedang berdoa,seminit belum habis,2 minit belum lagi habis sedangkan jemaah lain yang sedang menunggu ruang kosong untuk masuk menunaikan solat makin bertambah ramai.Saya tidak pasti bilakah jemaah tadi mengakhiri doanya apabila terdapat satu ruang kosong yang baru saja di berikan oleh seorang jemaah lain yang baru selesai mendirikan solat.
Bagi saya sempurnanya ibadah seseorang adalah juga meliputi kesan ibadahnya kepada orang lain.Wallahuallam...
Baru-baru ini selepas dalam perjalan balik dari kerja,saya sempat singgah di sebuah surau yang sederhana besar untuk menunaikan solat.Masuk sahaja dalam ruang solat kedengaran seseorang lelaki yang sedang berdoa dengan suara yang agak kuat.Doanya tidaklah salah,cuma menjadi isunya apabila saya melihat terdapat dua lelaki lain sedang menunaikan solat berhampiran dengan lelaki tadi.Jadi apa rasionalnya lelaki berkenaan membaca doa dengan suara yang kuat yang saya kira tentunya menganggu orang lain untuk melakukan ibadah wajib.Nampaknya disini keutamaan dalam melakukan ibadah mungkin sedikit dilupai oleh lelaki tadi.
Perkara ini mengingatkan saya kepada satu peristiwa apabila saya dalam perjalanan pulang dari perantauan ke kampung halaman.Apabila singgah di satu surau di sebuah stesen minyak,keadaan di dalam surau begitu penuh dengan jemaah yang sedang solat.Bagaimanapun pandangan saya lebih tertumpu kepada seorang jemaah yang sedang berdoa,seminit belum habis,2 minit belum lagi habis sedangkan jemaah lain yang sedang menunggu ruang kosong untuk masuk menunaikan solat makin bertambah ramai.Saya tidak pasti bilakah jemaah tadi mengakhiri doanya apabila terdapat satu ruang kosong yang baru saja di berikan oleh seorang jemaah lain yang baru selesai mendirikan solat.
Bagi saya sempurnanya ibadah seseorang adalah juga meliputi kesan ibadahnya kepada orang lain.Wallahuallam...
Subscribe to:
Posts (Atom)