Accordion ini kalo dalam pikiran ku sih kayak drop downlist lah simple nya.
Jadi kalo kita click button tertentu, akan muncul informasi tambahan di bawah nya.
terserah sih mau dibuat dimana, hehehe...
Kira-kira seperti ini tampilan nya.
Jadi pada saat User click Waktu Tunggu maka akan muncul CheckBoxList seperti pada gambar di atas.
@{string id_pertanyaan = "";
int step = 0;
}
@using (Html.BeginForm("InsertTransaksi", "T_Transaksi", FormMethod.Post))
{
foreach (System.Data.DataRow item in Model)
{
step = step + 1;
id_pertanyaan = Html.Encode(item[0]);
<div class="accordion" id="accordion2">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapse_@step">
<table class="table1" align="center">
<tr>
<td>
<div class="ukuranfont"><button id="btnPertanyaan" class="paddingClass" name="pilihPertanyaan" value="@Html.Encode(item[0])" style="margin-right:40px; margin-bottom:10px;width:450px; border-radius:8px; border-width:3px; border-color:blueviolet" onclick="">@Html.Encode(item[1])</button></div>
</td>
</tr>
</table>
</a>
</div>
<div id="collapse_@step" class="accordion-body collapse">
<div class="accordion-inner">
<table class="table1" align="center">
<tr>
<td>
@{
WebAppSatisfactionOfCustomers.Models.Detail_Pertanyaan dp = new WebAppSatisfactionOfCustomers.Models.Detail_Pertanyaan();
System.Data.DataSet dsDetailPertanyaan = new System.Data.DataSet();
System.Data.DataTable dtDetailPertanyaan = new System.Data.DataTable();
dsDetailPertanyaan = dp.GetDataBYIdPertanyaan(id_pertanyaan);
dtDetailPertanyaan = dsDetailPertanyaan.Tables[0];
string sDetailPertanyaan = "";
string IdDetail = "";
foreach (System.Data.DataRow drDetailPertanyaan in dtDetailPertanyaan.Rows)
{
sDetailPertanyaan = drDetailPertanyaan["nama_detail_pertanyaan"].ToString();
IdDetail = drDetailPertanyaan["id_detail_pertanyaan"].ToString();
<div class="styleFont"><input id="chkDetailPertanyaan" name="chkDetailPertanyaan" type="checkbox" value="@IdDetail" style="margin-right:20px; margin-bottom:6px" />@sDetailPertanyaan</div>
}
}
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
Semoga bermanfaat :)
Wednesday, 22 July 2015
Bed Information => Searching
Aku lagi mengerjakan fungsi Search atau dalam aplikasi ini disebut sebagai Bed Information.
Jadi dengan fungsi ini, si Perawat bisa melihat Bed yang mana-mana saja yang sedang digunakan dan sedang dibersihkan.
Kira-kira begini bentuk nya.
Nahh, jadi si Perawat dapat melakukan pencarian dengan hanya memilih Class Name atau Room Name atau Bed Name atau Start Date atau End Date atau bisa juga digabung-gabung, misalnya berdasarkan Class Name dan Room Name atau Room Name dan Bed Name.
Kalo dulu, aku buat semua kondisi nya dimana "stored procedure" dengan menggunakan IF CONDITION.
Kebayang kan, harus membuat beberapa kombinasi kemungkinan yang harus ditulis didalamnya. -___-
Dan solusinya adalah :
1. Pada saat si User menekan button Searh, tampung semua parameter yang TIDAK bernilai NULL dalam sebuah ArrayList.
Kira-kira seperti ini :
if (class_name.Equals("") || class_name.Equals(null))
{
}
else
{
sClass = "CR.Class_Id = '" + class_name +"'";
Query.Add(sClass);
}
if (room_name.Equals("") || room_name.Equals(null))
{
}
else
{
sRoom = "CR.Room_Id = '" + room_name +"'";
Query.Add(sRoom);
}
if (bed_name.Equals("") || bed_name.Equals(null))
{
}
else
{
sBed = "BR.Bed_Id = '" + bed_name +"'";
Query.Add(sBed);
}
if (!dStartDate.Equals(null))
{
string startdate = "DATEADD(day, DATEDIFF(day, 0, T.Start_Date), 0)>= '" + dStartDate.ToString() + "'";
Query.Add(startdate);
}
if (!dEndDate.Equals(null))
{
string enddate = "DATEADD(day, DATEDIFF(day, 0, T.End_Date), 0)<= '" + dEndDate.ToString() +"'";
Query.Add(enddate);
}
model = bed.GetDataInformation(Query);
2. Perlu diperhatikan pada saat menambahkan ke ArrayList, saya sudah set terlebih dahulu bagaimana kondisi nya.
Selanjutnya, kirim ArraryList tadi ke sebuah Model.
Kira-kira seperti ini :
public DataSet GetDataInformation(ArrayList Arr)
{
conn = objDBConnector.GetConn();
cmd = objDBConnector.GetCommand();
string sClass = null;
string sRoom = null;
string sBed = null;
DateTime? date = null;
int i = 0;
string text = null;
string temp = null;
string query = null;
string conca = "AND ";
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "usp_BedQuery#GetData1";
for (i = 0; i <= Arr.Count - 1; i++)
{
text = Arr[i].ToString();
temp = temp + text + ' ';
if ( i < Arr.Count - 1)
{
temp = temp + conca;
}
}
query = temp;
cmd.Parameters.AddWithValue("@query", query);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
da.Fill(dataset);
return dataset;
}
3. Setelah langkah 1 dan 2, sekarang tinggal bagaimana Stored Procedure kita menerima parameter String yang kita lempar melalui model.
Kira-kira seperti ini :
ALTER PROC [dbo].[usp_BedQuery#GetData1]
(
@query varchar(500)
)
AS
BEGIN
SET NOCOUNT ON
exec ('SELECT Distinct CR.Class_Id, C.Class_Name,CR.Room_Id, R.Room_Name, BR.Bed_Id, B.Bed_Name, T.Status_Bed_Id,SB.Status_Bed_Name, T.Start_Date, T.End_Date
from M_Class C
join Map_Class_Room CR
on CR.Class_Id = C.Class_Id
join M_Room R
on CR.Room_Id = R.Room_Id
join Map_Bed_Room BR
on CR.Room_Id = BR.Room_Id
join M_Bed B
on BR.Bed_Id = B.Bed_Id
join Map_Bed_Status BS
on B.Bed_Id = BS.Bed_Id
join T_Bed_Management T
on CR.Class_Id = T.Class_Id
join M_Status_Bed SB
on T.Status_Bed_Id = SB.Status_Bed_Id
where ' +@query)
END
4. Dengan seperti ini, kita gak perlu buat kombinasi-kombinasi dengan menggunakan IF lagi di stored procedure.
Semoga bisa membantu :) :)
Fighting :)
White
Jadi dengan fungsi ini, si Perawat bisa melihat Bed yang mana-mana saja yang sedang digunakan dan sedang dibersihkan.
Kira-kira begini bentuk nya.
![]() | |||
| Bed Information |
Kalo dulu, aku buat semua kondisi nya dimana "stored procedure" dengan menggunakan IF CONDITION.
Kebayang kan, harus membuat beberapa kombinasi kemungkinan yang harus ditulis didalamnya. -___-
Dan solusinya adalah :
1. Pada saat si User menekan button Searh, tampung semua parameter yang TIDAK bernilai NULL dalam sebuah ArrayList.
Kira-kira seperti ini :
if (class_name.Equals("") || class_name.Equals(null))
{
}
else
{
sClass = "CR.Class_Id = '" + class_name +"'";
Query.Add(sClass);
}
if (room_name.Equals("") || room_name.Equals(null))
{
}
else
{
sRoom = "CR.Room_Id = '" + room_name +"'";
Query.Add(sRoom);
}
if (bed_name.Equals("") || bed_name.Equals(null))
{
}
else
{
sBed = "BR.Bed_Id = '" + bed_name +"'";
Query.Add(sBed);
}
if (!dStartDate.Equals(null))
{
string startdate = "DATEADD(day, DATEDIFF(day, 0, T.Start_Date), 0)>= '" + dStartDate.ToString() + "'";
Query.Add(startdate);
}
if (!dEndDate.Equals(null))
{
string enddate = "DATEADD(day, DATEDIFF(day, 0, T.End_Date), 0)<= '" + dEndDate.ToString() +"'";
Query.Add(enddate);
}
model = bed.GetDataInformation(Query);
2. Perlu diperhatikan pada saat menambahkan ke ArrayList, saya sudah set terlebih dahulu bagaimana kondisi nya.
Selanjutnya, kirim ArraryList tadi ke sebuah Model.
Kira-kira seperti ini :
public DataSet GetDataInformation(ArrayList Arr)
{
conn = objDBConnector.GetConn();
cmd = objDBConnector.GetCommand();
string sClass = null;
string sRoom = null;
string sBed = null;
DateTime? date = null;
int i = 0;
string text = null;
string temp = null;
string query = null;
string conca = "AND ";
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "usp_BedQuery#GetData1";
for (i = 0; i <= Arr.Count - 1; i++)
{
text = Arr[i].ToString();
temp = temp + text + ' ';
if ( i < Arr.Count - 1)
{
temp = temp + conca;
}
}
query = temp;
cmd.Parameters.AddWithValue("@query", query);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
da.Fill(dataset);
return dataset;
}
3. Setelah langkah 1 dan 2, sekarang tinggal bagaimana Stored Procedure kita menerima parameter String yang kita lempar melalui model.
Kira-kira seperti ini :
ALTER PROC [dbo].[usp_BedQuery#GetData1]
(
@query varchar(500)
)
AS
BEGIN
SET NOCOUNT ON
exec ('SELECT Distinct CR.Class_Id, C.Class_Name,CR.Room_Id, R.Room_Name, BR.Bed_Id, B.Bed_Name, T.Status_Bed_Id,SB.Status_Bed_Name, T.Start_Date, T.End_Date
from M_Class C
join Map_Class_Room CR
on CR.Class_Id = C.Class_Id
join M_Room R
on CR.Room_Id = R.Room_Id
join Map_Bed_Room BR
on CR.Room_Id = BR.Room_Id
join M_Bed B
on BR.Bed_Id = B.Bed_Id
join Map_Bed_Status BS
on B.Bed_Id = BS.Bed_Id
join T_Bed_Management T
on CR.Class_Id = T.Class_Id
join M_Status_Bed SB
on T.Status_Bed_Id = SB.Status_Bed_Id
where ' +@query)
END
4. Dengan seperti ini, kita gak perlu buat kombinasi-kombinasi dengan menggunakan IF lagi di stored procedure.
Semoga bisa membantu :) :)
Fighting :)
White
Monday, 25 May 2015
Enabled = False VS Readonly = True
Enabled = FalseVS Readonly = True
Hmmm, both of them have same function, as to disable editable operation in a property toolbox such as TextBox.
But I don't know, some of my textbox which I set the enabled = false, then I can't get the value of the textbox. I search some people said that "If we want to pass the value we can use readonly = true, but if we wont we can just use enabled = true". Yeahh, that's right.
But why in some textbox I can pass value by using enabled = false????
Hmmm, both of them have same function, as to disable editable operation in a property toolbox such as TextBox.
But I don't know, some of my textbox which I set the enabled = false, then I can't get the value of the textbox. I search some people said that "If we want to pass the value we can use readonly = true, but if we wont we can just use enabled = true". Yeahh, that's right.
But why in some textbox I can pass value by using enabled = false????
Monday, 18 May 2015
How to set DateTime NULL
Sometimes we need to set a datetime column to be NULL in SqlServer, but DateTime is a value type.
Follow this tutorial, I can set a column which has DateTime type to be NULL.
Set DateTime Null
Follow this tutorial, I can set a column which has DateTime type to be NULL.
Set DateTime Null
Sunday, 17 May 2015
CausesValidation
Hemm, I have a button that i put in a DIV like as:
<div id="FormKosong" class="white_content">
<table cellpadding=0 cellspacing=0 border=0 style="background-color:#3c8ebd;" width="100%">
<input id="hdn" type="hidden" runat="server">
<tr>
<td height="16px">
<a href = "javascript:void(0)" onclick = "document.getElementById('FormKosong').style.display='none';document.getElementById('fadeKosong').style.display='none'">
<img src="../../Images/close.png" style="border :0px" width="15px" align="right" height="15px"/>
</a>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;padding-bottom:7px">
<table align="center" border="0" cellpadding="0" cellspacing="0" style="background-color:#fff" width="100%">
<tr>
<td align="center" colspan="2"><h2>Form Register Rawat Inap</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="center">
<table>
<tr>
<td align="left"><asp:Label ID="Label2" runat="server" Text="Id Class" Width="120px"></asp:Label></td>
<td><asp:TextBox ID="txtIdClassKosong" class="form-control" runat="server" Text='<%# Session["Class_Id"] %>' placeholder="Id Class" Width="100%" BorderColor="#3c8ebd" BorderStyle="Solid" BorderWidth="1px"></asp:TextBox>
<asp:RequiredFieldValidator id="RequiredFieldValidatorUserPassword" runat="server" ControlToValidate="txtIdClassKosong"
ErrorMessage="Id Class tidak boleh kosong" ForeColor="Red" ValidationGroup="grplogin"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="left"><asp:Label ID="Label3" runat="server" Text="Id Room" Width="120px"></asp:Label></td>
<td><asp:TextBox ID="txtIdRoomKosong" class="form-control" Text='<%# Session["Room_Id"] %>' runat="server" placeholder="Id Room" Width="100%" BorderColor="#3c8ebd" BorderStyle="Solid" BorderWidth="1px"></asp:TextBox>
<asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ControlToValidate="txtIdRoomKosong"
ErrorMessage="Id Room tidak boleh kosong" ForeColor="Red" ValidationGroup="grplogin"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="left"><asp:Label ID="Label4" runat="server" Text="Id Bed" Width="120px"></asp:Label></td>
<td><asp:TextBox ID="txtIdBedKosong" class="form-control" runat="server" placeholder="Id Bed" Width="100%" BorderColor="#3c8ebd" BorderStyle="Solid" BorderWidth="1px"></asp:TextBox>
<asp:RequiredFieldValidator id="RequiredFieldValidator2" runat="server" ControlToValidate="txtIdBedKosong"
ErrorMessage="Id Bed tidak boleh kosong" ForeColor="Red" ValidationGroup="grplogin"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="left"><asp:Label ID="Label27" runat="server" Text="Status Bed" Width="120px"></asp:Label> </td>
<td><asp:TextBox ID="txtStatusBedKosong" class="form-control" runat="server" placeholder="Status Bed" Width="100%" BorderColor="#3c8ebd" BorderStyle="Solid" BorderWidth="1px"></asp:TextBox>
<asp:RequiredFieldValidator id="RequiredFieldValidator11" runat="server" ControlToValidate="txtStatusBedKosong"
ErrorMessage="Status Bed tidak boleh kosong" ForeColor="Red" ValidationGroup="grplogin"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="left"><asp:Label ID="Label1" runat="server" Text="Id Register" Width="120px"></asp:Label> </td>
<td><asp:TextBox ID="txtIdRegister" class="form-control" runat="server" placeholder="Id Register" Width="100%" BorderColor="#3c8ebd" BorderStyle="Solid" BorderWidth="1px" ></asp:TextBox>
<asp:RequiredFieldValidator id="RequiredFieldValidatorIdRegister" runat="server" ControlToValidate="txtIdRegister"
ErrorMessage="Id Register tidak boleh kosong" ForeColor="Red" ValidationGroup="grplogin"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="left"><asp:Label ID="Label9" runat="server" Text="Description" Width="120px"></asp:Label> </td>
<td>
<textarea id="txtDescriptionKosong" name="txtDescriptionKosong" cols="33" rows="2" style="border-style:solid; border-width:1px; border-color:#3c8ebd"></textarea>
</td>
</tr>
<tr>
<td align="left"><asp:Label ID="Label5" runat="server" Text="Start Date" Width="120px"></asp:Label></td>
<td style="padding-top:10px; padding-bottom:10px;">
<dx:ASPxDateEdit ID="DateStartDate" runat="server" Width="278px" EditFormat="DateTime" Border-BorderColor="#3c8ebd" Border-BorderWidth="1px" Height="30px" ></dx:ASPxDateEdit>
</td>
</tr>
<tr>
<td align="left"><asp:Label ID="Label6" runat="server" Text="End Date" Width="120px"></asp:Label></td>
<td style="padding-top:10px; padding-bottom:10px;"">
<dx:ASPxDateEdit ID="DateEndDate" runat="server" Width="278px" EditFormat="DateTime" Border-BorderStyle="Solid" Border-BorderColor="#3c8ebd" Border-BorderWidth="1px" Height="30px" ></dx:ASPxDateEdit>
</td>
</tr>
<tr>
<td></td>
<td><asp:Button ID="btnReg" class="btn bg-olive btn-block" OnClick="register" CommandName="register" runat="server" Text="Register" Width="100%" height="30px" ValidationGroup="grplogin" CausesValidation="false" />
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td height="10px"></td>
</tr>
</table>
</td>
</tr>
</table>
<div align="center" class=" headertext">
<asp:Label ID="txtlbl" runat="server" ></asp:Label></div>
</div>
<div id="fadeKosong" class="black_overlay"></div>
And the problem is OnClick on the button does not work. I search and then I found the answer in this site CausesValidation. I just added CausesValidation="false" in my button.. :) :)
<div id="FormKosong" class="white_content">
<table cellpadding=0 cellspacing=0 border=0 style="background-color:#3c8ebd;" width="100%">
<input id="hdn" type="hidden" runat="server">
<tr>
<td height="16px">
<a href = "javascript:void(0)" onclick = "document.getElementById('FormKosong').style.display='none';document.getElementById('fadeKosong').style.display='none'">
<img src="../../Images/close.png" style="border :0px" width="15px" align="right" height="15px"/>
</a>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;padding-bottom:7px">
<table align="center" border="0" cellpadding="0" cellspacing="0" style="background-color:#fff" width="100%">
<tr>
<td align="center" colspan="2"><h2>Form Register Rawat Inap</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="center">
<table>
<tr>
<td align="left"><asp:Label ID="Label2" runat="server" Text="Id Class" Width="120px"></asp:Label></td>
<td><asp:TextBox ID="txtIdClassKosong" class="form-control" runat="server" Text='<%# Session["Class_Id"] %>' placeholder="Id Class" Width="100%" BorderColor="#3c8ebd" BorderStyle="Solid" BorderWidth="1px"></asp:TextBox>
<asp:RequiredFieldValidator id="RequiredFieldValidatorUserPassword" runat="server" ControlToValidate="txtIdClassKosong"
ErrorMessage="Id Class tidak boleh kosong" ForeColor="Red" ValidationGroup="grplogin"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="left"><asp:Label ID="Label3" runat="server" Text="Id Room" Width="120px"></asp:Label></td>
<td><asp:TextBox ID="txtIdRoomKosong" class="form-control" Text='<%# Session["Room_Id"] %>' runat="server" placeholder="Id Room" Width="100%" BorderColor="#3c8ebd" BorderStyle="Solid" BorderWidth="1px"></asp:TextBox>
<asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ControlToValidate="txtIdRoomKosong"
ErrorMessage="Id Room tidak boleh kosong" ForeColor="Red" ValidationGroup="grplogin"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="left"><asp:Label ID="Label4" runat="server" Text="Id Bed" Width="120px"></asp:Label></td>
<td><asp:TextBox ID="txtIdBedKosong" class="form-control" runat="server" placeholder="Id Bed" Width="100%" BorderColor="#3c8ebd" BorderStyle="Solid" BorderWidth="1px"></asp:TextBox>
<asp:RequiredFieldValidator id="RequiredFieldValidator2" runat="server" ControlToValidate="txtIdBedKosong"
ErrorMessage="Id Bed tidak boleh kosong" ForeColor="Red" ValidationGroup="grplogin"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="left"><asp:Label ID="Label27" runat="server" Text="Status Bed" Width="120px"></asp:Label> </td>
<td><asp:TextBox ID="txtStatusBedKosong" class="form-control" runat="server" placeholder="Status Bed" Width="100%" BorderColor="#3c8ebd" BorderStyle="Solid" BorderWidth="1px"></asp:TextBox>
<asp:RequiredFieldValidator id="RequiredFieldValidator11" runat="server" ControlToValidate="txtStatusBedKosong"
ErrorMessage="Status Bed tidak boleh kosong" ForeColor="Red" ValidationGroup="grplogin"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="left"><asp:Label ID="Label1" runat="server" Text="Id Register" Width="120px"></asp:Label> </td>
<td><asp:TextBox ID="txtIdRegister" class="form-control" runat="server" placeholder="Id Register" Width="100%" BorderColor="#3c8ebd" BorderStyle="Solid" BorderWidth="1px" ></asp:TextBox>
<asp:RequiredFieldValidator id="RequiredFieldValidatorIdRegister" runat="server" ControlToValidate="txtIdRegister"
ErrorMessage="Id Register tidak boleh kosong" ForeColor="Red" ValidationGroup="grplogin"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="left"><asp:Label ID="Label9" runat="server" Text="Description" Width="120px"></asp:Label> </td>
<td>
<textarea id="txtDescriptionKosong" name="txtDescriptionKosong" cols="33" rows="2" style="border-style:solid; border-width:1px; border-color:#3c8ebd"></textarea>
</td>
</tr>
<tr>
<td align="left"><asp:Label ID="Label5" runat="server" Text="Start Date" Width="120px"></asp:Label></td>
<td style="padding-top:10px; padding-bottom:10px;">
<dx:ASPxDateEdit ID="DateStartDate" runat="server" Width="278px" EditFormat="DateTime" Border-BorderColor="#3c8ebd" Border-BorderWidth="1px" Height="30px" ></dx:ASPxDateEdit>
</td>
</tr>
<tr>
<td align="left"><asp:Label ID="Label6" runat="server" Text="End Date" Width="120px"></asp:Label></td>
<td style="padding-top:10px; padding-bottom:10px;"">
<dx:ASPxDateEdit ID="DateEndDate" runat="server" Width="278px" EditFormat="DateTime" Border-BorderStyle="Solid" Border-BorderColor="#3c8ebd" Border-BorderWidth="1px" Height="30px" ></dx:ASPxDateEdit>
</td>
</tr>
<tr>
<td></td>
<td><asp:Button ID="btnReg" class="btn bg-olive btn-block" OnClick="register" CommandName="register" runat="server" Text="Register" Width="100%" height="30px" ValidationGroup="grplogin" CausesValidation="false" />
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td height="10px"></td>
</tr>
</table>
</td>
</tr>
</table>
<div align="center" class=" headertext">
<asp:Label ID="txtlbl" runat="server" ></asp:Label></div>
</div>
<div id="fadeKosong" class="black_overlay"></div>
And the problem is OnClick on the button does not work. I search and then I found the answer in this site CausesValidation. I just added CausesValidation="false" in my button.. :) :)
Sunday, 26 April 2015
Saturday, 18 April 2015
Get Button Image Visibility from Table
Aku ingin menampilkan data dari 2 tabel sekaligus pada sebuah Gridview di webform ASP.Net,
Tabel 1. Tabel M_Access yang menampilkan Access_ID, Access_Name dan Access_Active.
Tabel 2. Tabel M_Access_Menu yaitu button update dan button delete disebelah kanan.
Aku ingin mendapatkan nilai visible dari masing-masing button dari 2 buah kolom (Access_Edit, Access_Delete) yanag bernilai boolean dari tabel M_Access_Menu.
Langkah 1.
Menyajikan data dari tabel M_Access ke dalam DataTable.
Langkah 2.
Menyajikan 2 kolom tambahan pada DataTable dari tabel M_Access untuk menampung dua kolom dari M_Access_Menu.
Langkah 3.
Menyajikan data dari tabel M_Access_Menu ke dalam DataTable.
Langkah 4.
Memindahkan nilai dari kolom yang kita butuhkan di tabel M_Access_Menu ke dalam kolom tambahan DataTable M_Access.
kira-kira seperti ini Langkah 1 - Langkah 4
terdapat di m_access.aspx.cs
DataSet dsSemuaData = new DataSet();
DataSet dsAccessMenu = new DataSet();
DataSet dsAccess = new DataSet();
DataTable dtAccessMenu = new DataTable();
DataView dvAccessMenu = new DataView();
// Langkah 1
dsAccess = access.GetDataAll();
DataTable dtAccess = new DataTable();
dtAccess = dsAccess.Tables[0];
// Langkah 2
// proses menambahkan kolom update, delete ke tabel M_Access
dtAccess.Columns.Add("Access_isEdit", typeof(bool));
dtAccess.Columns.Add("Access_isDelete", typeof(bool));
dtAccess.Columns.Add("Access_isNew", typeof(bool));
//dtAccess.Merge(dtSemuaData);
foreach (string sAccessID in lstAccessID)
{
// Langkah 3
dsSemuaData = access_menu.GetData(sAccessID, sNamaMenu);
int jumlahRowDataSet = dsSemuaData.Tables.Count;
DataTable dtSemuaData = new DataTable();
dtSemuaData = dsSemuaData.Tables[0];
int jmlahRowDataTable = dtSemuaData.Rows.Count;
foreach (DataRow rowSemuaData in dtSemuaData.Rows)
{
string rowdata = rowSemuaData["Access_ID"].ToString();
if (rowdata.Equals(DBNull.Value))
{
}
else if (rowdata.Equals(sAccessID))
{
for (int i = 0; i < dtAccess.Rows.Count; i++)
{
// Langkah 4
dtAccess.Rows[i]["Access_isEdit"] = dtSemuaData.Rows[0]["Access_Edit"];
dtAccess.Rows[i]["Access_isDelete"] = dtSemuaData.Rows[0]["Access_Delete"];
dtAccess.Rows[i]["Access_isNew"] = dtSemuaData.Rows[0]["Access_New"];
}
}
}
}
return dtAccess;
Langkah 5.
Sekarang giliran untuk pemanggilan kolom tambahan tadi di view/webform.
m_access.aspx
<asp:GridView ID="GridViewAccess" runat="server" AutoGenerateColumns="False" Width="100%" CssClass="table table-bordered table-striped gvstyling" AllowPaging="true" OnPageIndexChanging="GridViewAccess_PageIndexChanging" OnRowUpdating="update" DataKeyNames="Access_ID" OnRowEditing="edit" OnRowCancelingEdit="canceledit" OnRowDeleting="delete">
<Columns>
<asp:TemplateField HeaderText="Access ID" ItemStyle-Width="150">
<ItemTemplate>
<asp:Label ID="lblAccessID" runat="server" Text='<%# Eval("Access_ID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Access Name" ItemStyle-Width="150">
<ItemTemplate>
<asp:Label ID="lblAccessName" runat="server" Text='<%# Eval("Access_Name") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtAccessName" runat="server" Text='<%# Eval("Access_Name") %>'></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidatorAccessName" runat="server" ErrorMessage="Nama Access tidak boleh kosong" ControlToValidate="txtAccessName"></asp:RequiredFieldValidator>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Access Active" ItemStyle-Width="150">
<ItemTemplate>
<asp:Label ID="lblAccessActive" runat="server" Text='<%# Eval("Access_Active") %>' ></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList id="ddlAccessActive" runat="server" CssClass="form-control">
<asp:ListItem Value="True">Aktif</asp:ListItem>
<asp:ListItem Value="False">Tidak Aktif</asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RequiredFieldValidatorAccessActive" runat="server" ErrorMessage="Access Active tidak boleh kosong" ControlToValidate="ddlAccessActive"></asp:RequiredFieldValidator>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<EditItemTemplate>
<asp:ImageButton ID="ButtonUpdate" runat="server" CommandName="Update" Text="Update" ImageUrl="~/Images/update.png" Width="20px" Height="20px" ToolTip="Update" />
<asp:ImageButton ID="ButtonCancel" runat="server" CommandName="Cancel" Text="Cancel" ImageUrl="~/Images/delete.png" Width="20px" Height="20px" ToolTip="Cancel"/>
</EditItemTemplate>
<ItemTemplate>
<asp:ImageButton ID="ButtonEdit" runat="server" CommandName="Edit" ImageUrl="~/Images/edit.png" Width="20px" Height="20px" Visible='<%# Eval("Access_isEdit").ToString().Equals("True")%>' ToolTip="Edit"/>
<asp:ImageButton ID="ButtonDelete" runat="server" CommandName="Delete" Text="Delete" ImageUrl="~/Images/delete.png" Width="20px" Height="20px" Visible='<%# Eval("Access_isDelete").ToString().Equals("True")%>' ToolTip="Delete"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
kira-kira seperti itu.. hehehheheh :D
Tabel 1. Tabel M_Access yang menampilkan Access_ID, Access_Name dan Access_Active.
Tabel 2. Tabel M_Access_Menu yaitu button update dan button delete disebelah kanan.
Aku ingin mendapatkan nilai visible dari masing-masing button dari 2 buah kolom (Access_Edit, Access_Delete) yanag bernilai boolean dari tabel M_Access_Menu.
Langkah 1.
Menyajikan data dari tabel M_Access ke dalam DataTable.
Langkah 2.
Menyajikan 2 kolom tambahan pada DataTable dari tabel M_Access untuk menampung dua kolom dari M_Access_Menu.
Langkah 3.
Menyajikan data dari tabel M_Access_Menu ke dalam DataTable.
Langkah 4.
Memindahkan nilai dari kolom yang kita butuhkan di tabel M_Access_Menu ke dalam kolom tambahan DataTable M_Access.
kira-kira seperti ini Langkah 1 - Langkah 4
terdapat di m_access.aspx.cs
DataSet dsSemuaData = new DataSet();
DataSet dsAccessMenu = new DataSet();
DataSet dsAccess = new DataSet();
DataTable dtAccessMenu = new DataTable();
DataView dvAccessMenu = new DataView();
// Langkah 1
dsAccess = access.GetDataAll();
DataTable dtAccess = new DataTable();
dtAccess = dsAccess.Tables[0];
// Langkah 2
// proses menambahkan kolom update, delete ke tabel M_Access
dtAccess.Columns.Add("Access_isEdit", typeof(bool));
dtAccess.Columns.Add("Access_isDelete", typeof(bool));
dtAccess.Columns.Add("Access_isNew", typeof(bool));
//dtAccess.Merge(dtSemuaData);
foreach (string sAccessID in lstAccessID)
{
// Langkah 3
dsSemuaData = access_menu.GetData(sAccessID, sNamaMenu);
int jumlahRowDataSet = dsSemuaData.Tables.Count;
DataTable dtSemuaData = new DataTable();
dtSemuaData = dsSemuaData.Tables[0];
int jmlahRowDataTable = dtSemuaData.Rows.Count;
foreach (DataRow rowSemuaData in dtSemuaData.Rows)
{
string rowdata = rowSemuaData["Access_ID"].ToString();
if (rowdata.Equals(DBNull.Value))
{
}
else if (rowdata.Equals(sAccessID))
{
for (int i = 0; i < dtAccess.Rows.Count; i++)
{
// Langkah 4
dtAccess.Rows[i]["Access_isEdit"] = dtSemuaData.Rows[0]["Access_Edit"];
dtAccess.Rows[i]["Access_isDelete"] = dtSemuaData.Rows[0]["Access_Delete"];
dtAccess.Rows[i]["Access_isNew"] = dtSemuaData.Rows[0]["Access_New"];
}
}
}
}
return dtAccess;
Langkah 5.
Sekarang giliran untuk pemanggilan kolom tambahan tadi di view/webform.
m_access.aspx
<asp:GridView ID="GridViewAccess" runat="server" AutoGenerateColumns="False" Width="100%" CssClass="table table-bordered table-striped gvstyling" AllowPaging="true" OnPageIndexChanging="GridViewAccess_PageIndexChanging" OnRowUpdating="update" DataKeyNames="Access_ID" OnRowEditing="edit" OnRowCancelingEdit="canceledit" OnRowDeleting="delete">
<Columns>
<asp:TemplateField HeaderText="Access ID" ItemStyle-Width="150">
<ItemTemplate>
<asp:Label ID="lblAccessID" runat="server" Text='<%# Eval("Access_ID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Access Name" ItemStyle-Width="150">
<ItemTemplate>
<asp:Label ID="lblAccessName" runat="server" Text='<%# Eval("Access_Name") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtAccessName" runat="server" Text='<%# Eval("Access_Name") %>'></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidatorAccessName" runat="server" ErrorMessage="Nama Access tidak boleh kosong" ControlToValidate="txtAccessName"></asp:RequiredFieldValidator>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Access Active" ItemStyle-Width="150">
<ItemTemplate>
<asp:Label ID="lblAccessActive" runat="server" Text='<%# Eval("Access_Active") %>' ></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList id="ddlAccessActive" runat="server" CssClass="form-control">
<asp:ListItem Value="True">Aktif</asp:ListItem>
<asp:ListItem Value="False">Tidak Aktif</asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RequiredFieldValidatorAccessActive" runat="server" ErrorMessage="Access Active tidak boleh kosong" ControlToValidate="ddlAccessActive"></asp:RequiredFieldValidator>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<EditItemTemplate>
<asp:ImageButton ID="ButtonUpdate" runat="server" CommandName="Update" Text="Update" ImageUrl="~/Images/update.png" Width="20px" Height="20px" ToolTip="Update" />
<asp:ImageButton ID="ButtonCancel" runat="server" CommandName="Cancel" Text="Cancel" ImageUrl="~/Images/delete.png" Width="20px" Height="20px" ToolTip="Cancel"/>
</EditItemTemplate>
<ItemTemplate>
<asp:ImageButton ID="ButtonEdit" runat="server" CommandName="Edit" ImageUrl="~/Images/edit.png" Width="20px" Height="20px" Visible='<%# Eval("Access_isEdit").ToString().Equals("True")%>' ToolTip="Edit"/>
<asp:ImageButton ID="ButtonDelete" runat="server" CommandName="Delete" Text="Delete" ImageUrl="~/Images/delete.png" Width="20px" Height="20px" Visible='<%# Eval("Access_isDelete").ToString().Equals("True")%>' ToolTip="Delete"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
kira-kira seperti itu.. hehehheheh :D
Subscribe to:
Posts (Atom)


