PDA

View Full Version : مقدار دهی به کد html



mahdi14694
چهارشنبه 19 خرداد 1389, 21:22 عصر
با سلام
من میخوام مقدار یک رشته که در کد Html نوشتم با توجه به dropdownlist مقدار دهی بشه.

<asp:Image ID="Image1" runat="server" Height="300px"
ImageUrl='<%# Eval("PictureURL","~/Gallery/WaterColor/{0}") %>' Width="250px" />

یعنی مقدار waterColor در مثال بالا با ddl1.selectedvalue جایگزین بشه.
با تشکر

hamedsabzian
پنج شنبه 20 خرداد 1389, 00:40 صبح
این کد رو در GridView یا ... گذاشتید؟

mahdi14694
پنج شنبه 20 خرداد 1389, 01:21 صبح
با دیتا لیست گزاشتم

salehbagheri
پنج شنبه 20 خرداد 1389, 01:24 صبح
اين رو امتحان كنيد:


<%# Eval("PictureURL","~/Gallery/" + ddl.SelectedValue.ToString + "/{0}") %>

mahdi14694
پنج شنبه 20 خرداد 1389, 02:11 صبح
این اررور رو میده
Error 7 Operator '+' cannot be applied to operands of type 'string' and 'method group' E:\C\Document\Visual Studio 2010\WebSites\Gallery\Admin\EditImage.aspx 209

hamedsabzian
پنج شنبه 20 خرداد 1389, 02:24 صبح
در کل می تونی از رویداد ItemDataBound استفاده کنی ( البته اگه مشکلت راه دیگه ای نداشت!!! ).
یک مثال واسه ListView:
protected void ContactsListView_ItemDataBound(object sender, ListViewItemEventArgs e)
{
Label EmailAddressLabel;
if (e.Item.ItemType == ListViewItemType.DataItem)
{
// Display the e-mail address in italics.
EmailAddressLabel = (Label)e.Item.FindControl("EmailAddressLabel");
EmailAddressLabel.Font.Italic = true;

System.Data.DataRowView rowView = e.Item.DataItem as System.Data.DataRowView;
string currentEmailAddress = rowView["EmailAddress"].ToString();
if (currentEmailAddress == "orlando0@adventure-works.com")
{
EmailAddressLabel.Font.Bold = true;
}
}
}
منبع:
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listviewitemeventargs.it em.aspx

mahdi14694
پنج شنبه 20 خرداد 1389, 02:41 صبح
در کل می تونی از رویداد ItemDataBound استفاده کنی ( البته اگه مشکلت راه دیگه ای نداشت!!! ).
یک مثال واسه DataList:
protected void ContactsListView_ItemDataBound(object sender, ListViewItemEventArgs e)
{
Label EmailAddressLabel;
if (e.Item.ItemType == ListViewItemType.DataItem)
{
// Display the e-mail address in italics.
EmailAddressLabel = (Label)e.Item.FindControl("EmailAddressLabel");
EmailAddressLabel.Font.Italic = true;

System.Data.DataRowView rowView = e.Item.DataItem as System.Data.DataRowView;
string currentEmailAddress = rowView["EmailAddress"].ToString();
if (currentEmailAddress == "orlando0@adventure-works.com")
{
EmailAddressLabel.Font.Bold = true;
}
}
}
منبع:
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listviewitemeventargs.it em.aspx


مشکل من با این حل نشد. کسی نیست منو راهنمایی کنه؟

hamedsabzian
پنج شنبه 20 خرداد 1389, 02:49 صبح
این رو امتحان کن . بگو چه خطایی میده!
protected void ContactsListView_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
System.Data.DataRowView rowView = e.Item.DataItem as System.Data.DataRowView;
string pURL = rowView["PictureURL"].ToString();
((Image)e.Item.FindControl("Image1")).ImageUrl = "~/Gallery/" + DDL1.SelectedValue + "/" + pURL;
}
}

mahdi14694
پنج شنبه 20 خرداد 1389, 03:05 صبح
if (e.Item.ItemType == ListViewItemType.DataItem)

من از دیتا لیست استفاده کردم. شرط if رو چطوری باید عوض کنم؟

hamedsabzian
پنج شنبه 20 خرداد 1389, 03:13 صبح
if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem)

salehbagheri
پنج شنبه 20 خرداد 1389, 08:12 صبح
این اررور رو میده
Error 7 Operator '+' cannot be applied to operands of type 'string' and 'method group' E:\C\Document\Visual Studio 2010\WebSites\Gallery\Admin\EditImage.aspx 209

به اين صورت تصحيح كنيد:


<%# Eval("PictureURL","~/Gallery/" & ddl.SelectedValue.ToString & "/{0}") %>

mahdi14694
پنج شنبه 20 خرداد 1389, 12:16 عصر
if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem)


حامد جان مرسی مشکل من رفع شد.