PDA

View Full Version : خواندن طول و عرض imagebutton از دیتابیس



fereshte22
پنج شنبه 19 مهر 1386, 11:25 صبح
سلام
من قبلا این سوال را به شکل دیگری مطرح کرده بودم ولی به جواب نرسیدم.
حالا این طوری اون را مطرح میکنم.
اگر یه imagebutton در گریدویو داشته باشیم و بخواهیم طول و عرض اون را از دیتابیس بخونیم به چه شکل باید عمل کنیم.همچنین نوع طول و عرض در دیتابیس چی باید باشد.
ممنون

Nightbat
پنج شنبه 19 مهر 1386, 11:35 صبح
width و height هم مثل attribute های دیگه باید bind کنی، نوعش هم int بگیر، مشکلت کجاست ؟

fereshte22
پنج شنبه 19 مهر 1386, 13:47 عصر
من از کد زیر استفاده کردم


<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="ImageButton1" runat="server" />
Width='<%#container.dataitem("w") %>' Height='<%#container.dataitem("h") %>' ImageUrl='<%# "~/administration/Images/" + Eval("namepicture") %>'
</ItemTemplate>
</asp:TemplateField>

نوع را هم int در نظر گرفتم ولی خطای زیر را میگیرد.
Specified cast is not valid

ولی وقتی از تگ زیر استفاده میکنم مشکلی ندارد


<img alt="0" Width='<%# Eval("w") %>' Height='<%# Eval("h") %>' src=".\Images\<%#Eval("namepicture1")%>">

ولی من برای محاسبه تعدا کلیک باید از imagebutton استفاده کنم.

fereshte22
جمعه 20 مهر 1386, 12:25 عصر
سلامدوستان کسی نمیدونه مشکل از چیه؟

SalarSoft
جمعه 20 مهر 1386, 13:02 عصر
باید از RowDataBound استفاده کنی:



<asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="ImageButton1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>


protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.DataItem != null)
{
ImageButton btn = (ImageButton)e.Row.FindControl("ImageButton1");
DataRowView view = (DataRowView)e.Row.DataItem;
btn.Width = Convert.ToInt32(view["Width"]);
btn.Height = Convert.ToInt32(view["Height"]);
}
}


ImageButton1 نام image button است که باید قرار بدید