bftarane
شنبه 30 فروردین 1393, 21:45 عصر
سلام.
من یه جدول دارم که نوع های زمین به صورت سلسله مراتبی در اون ذخیره میشن
به شکل زیر
118165
و یه جدول دیگه دارم که ویژگیهای ملک از قبیل کشور و همچنین آی دی نوع زمین در اون ذخیره میشه، به شکل زیر
118166
یعنی فرضاً اگه نوع ملک
مستغلات ، زمین، کشاورزی باشه
و آی دی اینا به ترتیب 1و19و48
باشه من می یام 48 رو در جدولم ذخیره میکنم
حالا من اطلاعات رو از جدول ملک واکشی می کنم و در ریپیتر نشون می دم
حالا من می خوام با داشتن آی دی نوع ملک
نوع ملک رو به صورت سلسله مراتبی در ریپیتر نشون بدم
بنابراین کدهای زیر رو نوشتم
ولی مشکلی که داره اینه که فرضاً برای سطر اول نشون میده
مستغلات، زمین، کشاورزی
برای سطر دوم
میاد مقدار قبلی رو هم نشون میده
یعنی مثلاً نشون میده
مستغلات،زمین، مستغلات، زمین، کشاورزی
در حالی که فقط باید نشون بده مستغلات، زمین
لطفاً راهنمایی کنید خیلی کارم گیره.
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GetProperty();
}
}
int parentID = 0;
string Title = "";
List<string> Level = new List<string>();
string PropertyType = "";
public string GetLevelsByLastLevelID(int PropertyTypeID)
{
string ConnString = ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString;
string SqlString = "select ParentID,Title from tbl_PropertyType where PropertyTypeID=@PropertyTypeID";
using (OleDbConnection conn = new OleDbConnection(ConnString))
{
using (OleDbCommand cmd = new OleDbCommand(SqlString, conn))
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@PropertyTypeID", PropertyTypeID);
conn.Open();
using (OleDbDataReader reader = cmd.ExecuteReader())
{
if (reader.Read())
{
parentID = Convert.ToInt32(reader["ParentID"]);
Title = Convert.ToString(reader["Title"]);
PropertyTypeID = parentID;
Level.Add(Title);
}
}
}
}
if (parentID != 0)
{
GetLevelsByLastLevelID(PropertyTypeID);
}
PropertyType= string.Join(",",Level);
return PropertyType;
}
و در ریپیتر هم به این شکل استفاده می کنم متد بالا رو:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%#GetLevelsByLastLevelID((int)Eval("PropertyTypeID")) %>'></asp:Label>
<hr />
</ItemTemplate>
</asp:Repeater>
فایل کامل رو هم ضمیمه کردم: فقط دیتابیسش اکسس هست.
یعنی امروز به مشکل پشت مشکل خوردم وقت هم خیلی کم دارم. یعنی الآن از آقای همساده هم داغون ترم.
من یه جدول دارم که نوع های زمین به صورت سلسله مراتبی در اون ذخیره میشن
به شکل زیر
118165
و یه جدول دیگه دارم که ویژگیهای ملک از قبیل کشور و همچنین آی دی نوع زمین در اون ذخیره میشه، به شکل زیر
118166
یعنی فرضاً اگه نوع ملک
مستغلات ، زمین، کشاورزی باشه
و آی دی اینا به ترتیب 1و19و48
باشه من می یام 48 رو در جدولم ذخیره میکنم
حالا من اطلاعات رو از جدول ملک واکشی می کنم و در ریپیتر نشون می دم
حالا من می خوام با داشتن آی دی نوع ملک
نوع ملک رو به صورت سلسله مراتبی در ریپیتر نشون بدم
بنابراین کدهای زیر رو نوشتم
ولی مشکلی که داره اینه که فرضاً برای سطر اول نشون میده
مستغلات، زمین، کشاورزی
برای سطر دوم
میاد مقدار قبلی رو هم نشون میده
یعنی مثلاً نشون میده
مستغلات،زمین، مستغلات، زمین، کشاورزی
در حالی که فقط باید نشون بده مستغلات، زمین
لطفاً راهنمایی کنید خیلی کارم گیره.
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GetProperty();
}
}
int parentID = 0;
string Title = "";
List<string> Level = new List<string>();
string PropertyType = "";
public string GetLevelsByLastLevelID(int PropertyTypeID)
{
string ConnString = ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString;
string SqlString = "select ParentID,Title from tbl_PropertyType where PropertyTypeID=@PropertyTypeID";
using (OleDbConnection conn = new OleDbConnection(ConnString))
{
using (OleDbCommand cmd = new OleDbCommand(SqlString, conn))
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@PropertyTypeID", PropertyTypeID);
conn.Open();
using (OleDbDataReader reader = cmd.ExecuteReader())
{
if (reader.Read())
{
parentID = Convert.ToInt32(reader["ParentID"]);
Title = Convert.ToString(reader["Title"]);
PropertyTypeID = parentID;
Level.Add(Title);
}
}
}
}
if (parentID != 0)
{
GetLevelsByLastLevelID(PropertyTypeID);
}
PropertyType= string.Join(",",Level);
return PropertyType;
}
و در ریپیتر هم به این شکل استفاده می کنم متد بالا رو:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%#GetLevelsByLastLevelID((int)Eval("PropertyTypeID")) %>'></asp:Label>
<hr />
</ItemTemplate>
</asp:Repeater>
فایل کامل رو هم ضمیمه کردم: فقط دیتابیسش اکسس هست.
یعنی امروز به مشکل پشت مشکل خوردم وقت هم خیلی کم دارم. یعنی الآن از آقای همساده هم داغون ترم.