|
|
|
อยากทราบวิธีเปลี่ยนค่า Itemdata ใน Gridview ที่มาจาก Database ครับ |
|
|
|
|
|
|
|
ทำใน RowDataBound ครับ
Code (C#)
Label lblUsed = (Label)(e.Row.FindControl("lblUsed"));
if (lblUsed != null)
{
if(DataBinder.Eval(e.Row.DataItem, "Used").ToString() == "X")
{
lblUsed.Text = "XXXXXXXXXXXXXX";
}
else
{
lblUsed.Text = "YYYYYYYYYYYYYY";
}
}
ประมาณนี้
Go to : (C#) ASP.NET GridView Control - RowDataBound
|
|
|
|
|
Date :
2012-08-22 22:09:13 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองแบบนี้ดูครับ เอาไว้ใน rowdatabound เหมือนกัน (ไม่ชัวร์เหมือนกันเพราะโค้ดจริงผมเป็น VB อันนี้แปลงให้ครับ)
นับ Cell จาก gridview แบบนี้ 0 1 2 3 (บริษัท,ชื่อแพคเกจ,ประเภท,....)
เพิ่มส่วนของเช็คค่า Null เองนะครับเพราะผมบังคับไปก่อนโน้นแล้วว่าถ้าว่างก็ไม่บันทึก ^ ^
Code (C#)
try {
if (e.Row.RowType == DataControlRowType.DataRow) {
Label P = e.Row.Cells(2).FindControl("LblPackType");
if (P.Text == "2P") {
e.Row.Cells(2).Text = "2 Plus";
} else {
e.Row.Cells(2).Text = "Not match";
}
}
} catch (Exception ex) {
}
|
|
|
|
|
Date :
2012-08-23 16:05:28 |
By :
Nebula |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอโทษนะครับ ตัวอย่างที่ mr.win ให้มาถูกแล้ว ผมแก้โดยที่หน้า html โดยตัด Text='<%# Eval("PackName") %>' ออกทุกอัน แล้วใช้การใส่ค่าแบบ RowDataBound แทนครับ
Code (C#)
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
BorderColor="#E7E7FF" CellPadding="3" BorderStyle="None" Width="99%" Font-Size="13px"
DataKeyNames="CpName" AllowPaging="True" PageSize="10" AllowSorting="True"
onsorting="GridView1_Sorting" onpageindexchanging="GridView1_PageIndexChanging"
OnRowDataBound="GridView1_RowDataBound" >
<RowStyle BackColor="#F5F5F5" ForeColor="#4A3C8C" />
<Columns>
<asp:TemplateField HeaderText="บริษัท" SortExpression="CpName" >
<ItemTemplate>
<asp:Label ID="LblCpName" runat="server" />
</ItemTemplate><ItemStyle Width="50px" HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="ชื่อแพ็คเกจ" >
<ItemTemplate>
<asp:Label ID="LblPackName" runat="server" />
</ItemTemplate><ItemStyle />
</asp:TemplateField>
<asp:TemplateField HeaderText="ประเภท" >
<ItemTemplate>
<asp:Label ID="LblPackType" runat="server" />
</ItemTemplate><ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="ชื่อแพลน" >
<ItemTemplate>
<asp:Label ID="LblPlanName" runat="server" />
</ItemTemplate><ItemStyle />
</asp:TemplateField>
<asp:TemplateField HeaderText="ชื่อโปรโมชั่น" >
<ItemTemplate>
<asp:Label ID="LblProName" runat="server" />
</ItemTemplate><ItemStyle />
</asp:TemplateField>
<asp:TemplateField HeaderText="เบี้ยรวม" >
<ItemTemplate>
<asp:Label ID="LblPackSum" runat="server" />
</ItemTemplate><ItemStyle HorizontalAlign="Right" />
</asp:TemplateField>
<asp:TemplateField HeaderText="เบี้ยขาย" >
<ItemTemplate>
<asp:Label ID="LblPackSale" runat="server" />
</ItemTemplate><ItemStyle HorizontalAlign="Right" />
</asp:TemplateField>
<asp:TemplateField HeaderText="ยกเลิก" >
<ItemTemplate>
<asp:Label ID="LblPackCancel" runat="server" ForeColor="Red" />
</ItemTemplate><ItemStyle Width="50px" HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="แก้ไข" >
<ItemTemplate>
<asp:HyperLink ID="hplEdit" runat="server" Text="Edit" />
</ItemTemplate><ItemStyle Width="50px" HorizontalAlign="Center" />
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
<PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
<HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" HorizontalAlign="Center" />
<AlternatingRowStyle BackColor="#F7F7F7" />
</asp:GridView>
อันนี้ที่ Code Behind ครับ
Code (C#)
// ทำ DataBound แบบกำหนดค่าเอง
protected void GridView1_RowDataBound(Object s, GridViewRowEventArgs e)
{
//บริษัท
Label LblCpName = (Label)(e.Row.FindControl("LblCpName"));
if (LblCpName != null)
{
LblCpName.Text = (string)DataBinder.Eval(e.Row.DataItem, "CpName");
}
//ชื่อแพ็คเกจ
Label LblPackName = (Label)(e.Row.FindControl("LblPackName"));
if (LblPackName != null)
{
LblPackName.Text = (string)DataBinder.Eval(e.Row.DataItem, "PackName");
}
//ประเภท
Label LblPackType = (Label)(e.Row.FindControl("LblPackType"));
if (LblPackType != null)
{
if ((string)DataBinder.Eval(e.Row.DataItem, "PackType") == "2p")
{
LblPackType.Text = "2 Plus";
}
if ((string)DataBinder.Eval(e.Row.DataItem, "PackType") == "3p")
{
LblPackType.Text = "3 Plus";
}
if ((string)DataBinder.Eval(e.Row.DataItem, "PackType") == "3")
{
LblPackType.Text = "ประเภท 3";
}
}
//ชื่อแพลน
Label LblPlanName = (Label)(e.Row.FindControl("LblPlanName"));
if (LblPlanName != null)
{
LblPlanName.Text = (string)DataBinder.Eval(e.Row.DataItem, "PlanName");
}
//ชื่อโปรโมชั่น
Label LblProName = (Label)(e.Row.FindControl("LblProName"));
if (LblProName != null)
{
LblProName.Text = (string)DataBinder.Eval(e.Row.DataItem, "ProName");
}
//เบี้ยรวม
Label LblPackSum = (Label)(e.Row.FindControl("LblPackSum"));
if (LblPackSum != null)
{
LblPackSum.Text = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "PackSum"));
}
//เบี้ยขาย
Label LblPackSale = (Label)(e.Row.FindControl("LblPackSale"));
if (LblPackSale != null)
{
LblPackSale.Text = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "PackSale"));
}
//ยกเลิก
Label LblPackCancel = (Label)(e.Row.FindControl("LblPackCancel"));
if (LblPackCancel != null)
{
if (DataBinder.Eval(e.Row.DataItem, "PackCancel") is Nullable || DataBinder.Eval(e.Row.DataItem, "PackCancel") == "")
{
LblPackCancel.Text = "";
}
else
{
LblPackCancel.Text = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "PackCancel"));
}
}
//ปุ่มแก้ไข
HyperLink hplEdit = (HyperLink)(e.Row.FindControl("hplEdit"));
if (hplEdit != null)
{
hplEdit.NavigateUrl = "PackageEdit.aspx?PackID=" + Convert.ToString(DataBinder.Eval(e.Row.DataItem, "PackID"));
}
}
ตอนแรกที่แก้ยัง Error อยู่ครับ เลยต้องใส่ Method protected เข้าไปด้วยถึงจะหายครับ
ขอบคุณทุกๆ คำตอบนะครับ
|
|
|
|
|
Date :
2012-08-23 16:32:02 |
By :
karn4851 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เก่งครับ
|
|
|
|
|
Date :
2012-08-23 21:03:16 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|