datalist...รบกวนท่านผู้รู้ดูนี้ให้หน่อยครับไม่ค่อยถนัดคือดัดแปลงจากที่ได้แนะนำมานะ ครับ
รบกวนท่านผู้รู้ดูนี้ให้หน่อยครับไม่ค่อยถนัดคือดัดแปลงจากที่ได้แนะนำมานะครับถ้า query แค่ตารางเดียวนะจะแสดงข้อมูลออกมาอยู่ครับแต่พอ query ซ้อนเข้าไปอีกกลับมี error
<asp:DataList ID="DataList1" runat="server" onitemdatabound="DataList1_ItemDataBound"
Width="715px">
<ItemTemplate>
<table align="center" border="0" cellpadding="0" cellspacing="0"
style="width: 740px">
<tr>
<td bgcolor="#999999" colspan="6" style="text-align: left">
<asp:Label ID="lbl_title" runat="server" Text="Title"></asp:Label>
</td>
</tr>
<tr>
<td bgcolor="#CCCCCC" width="383">
<div align="center">
รายการ</div>
</td>
<td bgcolor="#CCCCCC" width="60">
<div align="center">
มากสุด</div>
</td>
<td bgcolor="#CCCCCC" width="60">
<div align="center">
มาก</div>
</td>
<td bgcolor="#CCCCCC" width="60">
<div align="center">
ปานกลาง</div>
</td>
<td bgcolor="#CCCCCC" width="60">
<div align="center">
น้อย</div>
</td>
<td bgcolor="#CCCCCC" width="60">
<div align="center">
น้อยสุด</div>
</td>
</tr>
<tr>
<td>
<div align="left">
<asp:Label ID="lbl_detail" runat="server" Text="Detail"></asp:Label>
</div>
</td>
<td>
<div align="center">
<asp:RadioButton ID="radio1" runat="server" GroupName="1" />
</div>
</td>
<td>
<div align="center">
<asp:RadioButton ID="radio2" runat="server" GroupName="1" />
</div>
</td>
<td>
<div align="center">
<asp:RadioButton ID="radio3" runat="server" GroupName="1" />
</div>
</td>
<td>
<div align="center">
<asp:RadioButton ID="radio4" runat="server" GroupName="1" />
</div>
</td>
<td>
<div align="center">
<asp:RadioButton ID="radio5" runat="server" GroupName="1" />
</div>
</td>
</tr>
</table>
</ItemTemplate>
<SeparatorTemplate>
<div style="height: 10px;"></div>
</SeparatorTemplate>
</asp:DataList>
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
public partial class Assessments2 : System.Web.UI.Page
{
db_connect conn = new db_connect();
db_connect conn2 = new db_connect();
protected void Page_Load(object sender, EventArgs e)
{
show_DataBound();
}
private void show_DataBound()
{
DataList1.DataSource = GetDataForDataList();
DataList1.ItemDataBound += new DataListItemEventHandler(DataList1_ItemDataBound);
DataList1.DataBind();
}
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
DataRowView Dr = (DataRowView)e.Item.DataItem;
DataRowView Dr2 = (DataRowView)e.Item.DataItem;
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
((Label)e.Item.FindControl("lbl_title")).Text = (((int)Dr["no"])).ToString()+"."+(((string)Dr["Name"])).ToString();
((Label)e.Item.FindControl("lbl_detail")).Text = (((int)Dr2["no2"])).ToString() + "." + (((string)Dr2["Name2"])).ToString();
//((RadioButton)e.Item.FindControl("radio1")).DataSource = RadioButton();
//((RadioButton)e.Item.FindControl("radio1")).DataTextField = "Name";
//((RadioButton)e.Item.FindControl("radio1")).DataValueField = "ID";
//((RadioButton)e.Item.FindControl("radio1")).DataBind();
}
}
private DataTable GetDataForDataList()
{
string sql = "SELECT * FROM tb_Sides ORDER BY Side_id ASC";
conn.dbconn.Open();
DataTable Dt = new DataTable();
SqlCommand cmd = new SqlCommand(sql, conn.dbconn);
SqlDataReader daread = cmd.ExecuteReader();
Dt.Columns.Add(new DataColumn("no", System.Type.GetType("System.Int32")));
Dt.Columns.Add(new DataColumn("Name", System.Type.GetType("System.String")));
int no = 1;
while (daread.Read())
{
DataRow Dr = Dt.NewRow();
string Side_id = daread["Side_id"].ToString();
Dr["no"] = no;
Dr["Name"] = daread["Side_name"];
string sql2 = "SELECT * FROM tb_Assessments WHERE Side_id='"+ Side_id +"'";
conn2.dbconn.Open();
DataTable Dt2 = new DataTable();
SqlCommand cmd2 = new SqlCommand(sql2, conn2.dbconn);
SqlDataReader daread2 = cmd2.ExecuteReader();
Dt2.Columns.Add(new DataColumn("no2", System.Type.GetType("System.Int32")));
Dt2.Columns.Add(new DataColumn("Name2", System.Type.GetType("System.String")));
int no2 = 1;
while (daread2.Read())
{
DataRow Dr2 = Dt2.NewRow();
Dr2["no2"] = no2;
Dr2["Name2"] = daread2["Asses_name"];
Dt2.Rows.Add(Dr2);
no2++;
}
conn2.dbconn.Close();
return Dt2;
Dt.Rows.Add(Dr);
no++;
}
conn.dbconn.Close();
return Dt;
}
//private DataTable RadioButton()
//{
// DataTable Dt = new DataTable();
// Dt.Columns.Add(new DataColumn("ID", System.Type.GetType("System.Int32")));
// Dt.Columns.Add(new DataColumn("Name", System.Type.GetType("System.String")));
// for (int i = 0; i < 5; i++)
// {
// DataRow Dr = Dt.NewRow();
// Dr["ID"] = i;
// Dr["Name"] = "Item" + i.ToString();
// Dt.Rows.Add(Dr);
// }
// return Dt;
//}
}
ผมหามาหลายวิธีแล้วนะครับมีตัวนี้ที่ใกล้เคียงกับที่ต้องการมากที่สุดแต่ก็ยังติด error ช่วยทีนะครับขอบคุณมากTag : - - - -
Date :
2010-07-09 09:35:04
By :
loogway
View :
1312
Reply :
4
แสดงว่าที่เอาตัวอย่างให้ดูนี่ เปล่าประโยขน์ใช่ไหมครับ
คนเขียนเศร้าเลยนะเนี่ย
วิธีใช้ radiobuttonlist ให้ datalist ก็ผิด ทำแบบนั้น bind data ไม่ได้หรอก -_-"
เอาไปดูอีกทีว่าผมเขียนยังไง https://www.thaicreate.com/dotnet/forum/042825.html
Date :
2010-07-09 11:54:34
By :
tungman
ผมก็เข้าใจนะครับจากตัวอย่างที่ให้มาขอคุณมากครับผมก็ลองทำดูเมื่อคืนนี้ก็ได้อยู่ครับแต่ว่ามันไม่ตรงกับความต้องการนะครับผมเลยดัดแปลงเอาเปลี่ยนมาให้เป็น radiobutton แทนนะครับแต่ตัวนี้ไม่มีปัญหาหลอกครับคือว่าการเรียงข้อมูลมันนะผมอยากได้แบบรูปนี้นะครับ
ผมก็ไม่รู้นะครับว่าตัว radiobuttonlist นี้มันสามารถจัดเป็นแนวนอนได้อะป่าว
ยังไงก็ช่วนแนะนำด้วยนะครับไม่ค่อยถนัดนะ ขอบคุณครับ
Date :
2010-07-09 12:20:19
By :
loogway
เย้ๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆ ได้แล้วครับจากการมั่วมาสองวันเต็มๆก็ได้ค้นพบจากเว็บนี้ครับแล้วก็เอามาดัดแปลงเอาเองเล็กน้อยก็ได้ตามที่ต้องการเลยครับ
http://www.codetoday.net/default.aspx?g=posts&t=1728
Date :
2010-07-12 11:17:09
By :
loogway
Load balance : Server 05