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
No comments:
Post a Comment