PDA

View Full Version : سوال: نمایش یا مخفی بودن،بر اساس پر بودن یا خالی بودن فیلد جدول



Beginner67
چهارشنبه 02 مرداد 1392, 10:38 صبح
سلام.
یه صفحه ای دارم برای نمایش اطلاعات یه جدول.
موقعی که اطلاعات درج میکنم یه قسمتی هست برای آپلود فایل.
برای آپلود فایل یه فیلدی در نظر گرفتم به نام upfile.
این فیلدهمیشه پر نمیشه...یعنی وقتی اطلاعات درج میکنم بعضی وقتها فایل برای آپلود دارم و بعضی وقتها نه.
تو صفحه ای که میخوام اطلاعات رو نشون بدم یه هایپرلینک گذاشتم و وصلش کردم به فیلد upfile که بتونن دانلودش کنن.
حالا چجوری باید براش کد بنویسم که اگر فیلد upfile پر بود هایپرلینک رو نشون بده و در غیر این صورت هایپرلینک مخفی باشه.

sam166
چهارشنبه 02 مرداد 1392, 15:31 عصر
از این کد جاوا اسکریپت استفاده کن

function validate() {



if (document.getElementById("<%=upload.ClientID%>").value != "") {

document.getElementById("<%=HyperLink.ClientID%>").style.display = 'none';
}
return true;
}

Beginner67
چهارشنبه 02 مرداد 1392, 22:52 عصر
ممنون.
upload.ClientID
upload همون فیلد آپلود هست؟

sam166
چهارشنبه 02 مرداد 1392, 23:40 عصر
بله کنترل FileUpload است

Beginner67
جمعه 04 مرداد 1392, 11:09 صبح
سلام.
فیلدی مربوط به آپلود فایل topicfile و هایپرلینکی که قراره اطلاعات رو نشون بده hyperlink12 هست.
این کد:
function validate()
{
if (document.getElementById("<%=topicfile.ClientID%>").value != "")
{
document.getElementById("<%=HyperLink12.ClientID%> ").style.display = 'none';
}
return true;
}

و موقع اجرا این خطا رو میده میشه راهنمایی کنید؟
http://www.axgig.com/images/75198644707863774884.png

sam166
جمعه 04 مرداد 1392, 12:01 عصر
کد های صفحه رو بزار

arashnaderi
جمعه 04 مرداد 1392, 12:02 عصر
سلام
کدی که sam166 (http://barnamenevis.org/member.php?115725-sam166) دادن درسته. حالا چرا جواب نگرفتید برمیگرده به اینکه باید کداتونو بزارید ببینیم :لبخند:
از این روش هم میتونید استفاده کنید :
برای کنترل فایل آپلودتون و هایپرلینکتون این خصوصیت را تنظیم کنید :
ClientIDMode="Static"

function validate()
{
if (document.getElementById("topicfile" ).value != "")
{
document.getElementById("HyperLink12").style.display = 'none';
}
return true;
}

Beginner67
جمعه 04 مرداد 1392, 14:14 عصر
کد صفحه:


<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="showtopic.aspx.cs" Inherits="showtopic1" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<script type="text/javascript">
function validate()
{
if (document.getElementById("<%=topicfile.ClientID%>").value != "")
{
document.getElementById("<%=HyperLink.ClientID%> ").style.display = 'none';
}
return true;
}
</script>

<div id="matnvasat1" dir="rtl" class="news1">
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:DatabaseConnectionString1 %>"
SelectCommand="SELECT [topicid], [topictitle], [topicmatn], [topicdate], [topicaks], [topicfile], [mid], [mzid], [topickholase],[hamayesh],[jashnvareh],[bazdid],[barnameh] FROM [topic] where mzid =@i or topicid=@j">
<SelectParameters>
<asp:QueryStringParameter Name="i" QueryStringField="id" />
<asp:QueryStringParameter Name="j" QueryStringField="id" />
</SelectParameters>

</asp:SqlDataSource>
<br />

<asp:DataList ID="DataList3" runat="server" DataKeyField="topicid"
DataSourceID="SqlDataSource1">
<ItemTemplate>
<table style="width: 665px; height: 215px;">
<tr>
<td align="right" dir="rtl">

<asp:Label ID="Label2" runat="server" Font-Bold="True" ForeColor="#336600"
Text='<%# Eval("topictitle") %>'></asp:Label>

</td>
<td rowspan="3">
<asp:Image ID="Image2" runat="server" Height="120px" ImageAlign="Left"
ImageUrl='<%# Eval("topicaks") %>' Width="120px" BorderStyle="Double" />
</td>
</tr>
<tr>
<td align="right" dir="rtl">
<asp:Label ID="Label3" runat="server" Text='<%# Eval("topicmatn") %>'></asp:Label>
</td>
</tr>
<tr>

<td align="right" dir="rtl">

<asp:HyperLink ID="HyperLink12" runat="server"
NavigateUrl='<%# Eval("topicfile") %>'>دانلود فایل ضمیمه</asp:HyperLink>

</td>
</tr>
<tr>
<td align="right" dir="rtl">

<asp:Label ID="Label4" runat="server" Text='<%# Eval("topicdate") %>'
ForeColor="#003300" Font-Size="X-Small"></asp:Label>
<br />


</td>

</tr>

</table>
<br />
</ItemTemplate>
</asp:DataList>

<br />

</div>

</asp:Content>

sam166
جمعه 04 مرداد 1392, 17:00 عصر
کنترل فایل آپلودت کو؟؟؟؟

Beginner67
جمعه 04 مرداد 1392, 19:11 عصر
کنترل فایل آپلود؟
من تو یه صفحه ی دیگه اطلاعات رو درج کردم و fileupload تو همون صفحه add هست و تو یه صفحه ی دیگه اطلاعات رو نمایش میدم.اینجا کنترل فایل آپلود نیست.
تو این صفحه یه هایپرلینک هست که میخوام اگر فیلد فایل خالی بود نمایش داده نشه(مخفی باشه).

sam166
جمعه 04 مرداد 1392, 20:03 عصر
دوست عزیز شما خالی بودن چی رو میخوایی برسی کنی؟؟چه کنترلی؟؟

Beginner67
جمعه 04 مرداد 1392, 20:17 عصر
:متعجب:
آخه مگه قرار بود خالی بودن fileupload رو کنترل کنم؟میخواستم خالی بودن فیلد جدول که مربوط به fileupload هست رو کنترل کنم.
اگر پست اول من رو دوباره بخونید میبینید که گفتم :
تو صفحه ای که میخوام اطلاعات رو نشون بدم یه هایپرلینک گذاشتم و وصلش کردم به فیلد upfile که بتونن دانلودش کنن.
حالا چجوری باید براش کد بنویسم که اگر فیلد upfile پر بود هایپرلینک رو نشون بده و در غیر این صورت هایپرلینک مخفی باشه.

آخه تو صفحه add چجوری میتونم هایپرلینک رو که تویه صفحه دیگست رو مخفی کنم؟!!

sam166
جمعه 04 مرداد 1392, 22:13 عصر
Visible کنترلت رو بایند کن به فیلدت

Visible='<%# Eval("topictitle") %>'

zerocool151
شنبه 05 مرداد 1392, 00:46 صبح
NavigateUrl='<%# Eval("topicfile").ToString() =="" ? "#" : Eval("topicfile") %>'

Beginner67
شنبه 05 مرداد 1392, 01:23 صبح
ممنون از کمک دوستان ولی کاش لطف میکردید سوال رو با دقت بیشتری میخوندید! یا حداقل خودتون مطمئن میشدید روشتون جواب میده.
من میخوام وقتی فیلد null بود کلا هایپرلینک مخفی باشه.یه شرط یه if .....این روشها هیچ کدوم جواب نمیده.
:(

zerocool151
شنبه 05 مرداد 1392, 02:33 صبح
دوست عزیز شما شرط و چک کن اگه خالی بود یا null بود خالیه دیگه
مشکل چیه الان؟؟؟
اگه میخوای واسه visible بودنش هم این شرط رو بزار که اگه null بود نشونش نده
واقعا حل نمیشه؟؟؟

Beginner67
شنبه 05 مرداد 1392, 10:09 صبح
دوست عزیز پس من 3 روزه دارم چی میگم؟!!!
من میگم کدی که بتونم فیلد هایپرلینک رو اگر خالی بود(null)مخفی کنم بذارید!!!چون نمیتونم خودم این کار رو انجام بدم.

Beginner67
شنبه 05 مرداد 1392, 14:25 عصر
چرا ما رو تو حالت آمپاس قرار میدید آخه؟...:))
یکی نیست کمک کنه؟

zerocool151
شنبه 05 مرداد 1392, 18:29 عصر
<asp:LinkButton ID="LinkButton1" runat="server" NavigateUrl='<%# Eval("topicfile") != null ? Eval("topicfile") %>' Visible='<%# Eval("topicfile") !=null ? true : false %>'>لینک</asp:LinkButton>

Beginner67
شنبه 05 مرداد 1392, 19:58 عصر
ببخشید ولی اگر این سایت این امکان رو داشت بهتون امتیاز منفی میدادم.
linkbotton چجوری navigat میگیره؟اصلا خودتون تست کردید ببینید جواب میده یا نه؟یه باز تست کنید ببینید چندتا خطا داره!!!!

واقعا کسی پیدا نمیشه متوجه سوال من بشه و بتونه جواب بده؟

sam166
شنبه 05 مرداد 1392, 22:32 عصر
شما یه فیلد تو دیتا بیس داری
میخوایی اگه خالی بود لینک باتون نمایش داده نشه
اگر پر بود نمایش داده بشه

درسته؟؟

Beginner67
شنبه 05 مرداد 1392, 23:51 عصر
سلام.
بله درسته.اینکه لینک باتن باشه یا هایپر یا لیبل یا....مهم نیست میخوام اگر فیلد خالی بود اون کنترلی که به اون فیلد بانده نشون داده نشه.

sam166
یک شنبه 06 مرداد 1392, 02:35 صبح
دو راه داری
اولی اینکه مقادیر بانک اطلاعاتی رو بخونی با یه IF چک بکنی که خالیه یا نه

راه دوم که من پیشنهاد میکنم ابتدا داخل دیتا لیست مدار فیلدت رو به یه لیبیل بایند کن بعد بیا داخل ItemDataBound مقدار LAbel رو بگیر و با یه IF بقیه کار رو انجام بده


میدونم که الان دوباره صد تا سوال برات پیش میاد بخاطر همین کد هاشو میزارم.

داخل دیتا لیست به این صورت بایند کن
<asp:Label ID="topicfile" runat="server"
Text='<%# Eval("topicfile") %>' />

حالا داخل ItemDataBound دیتا لیست به این صورت انجام بده

protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem)
{

// Retrieve the Label control in the current DataListItem.
Label topicfile = (Label)e.Item.FindControl("topicfile");
if (topicfile.Text == "NALL")
{
// دستوراتت
}
}
}

zerocool151
یک شنبه 06 مرداد 1392, 04:25 صبح
ببخشید ولی اگر این سایت این امکان رو داشت بهتون امتیاز منفی میدادم.
linkbotton چجوری navigat میگیره؟اصلا خودتون تست کردید ببینید جواب میده یا نه؟یه باز تست کنید ببینید چندتا خطا داره!!!!

واقعا کسی پیدا نمیشه متوجه سوال من بشه و بتونه جواب بده؟

داقعا ممنون از اطلاع رسانیتون
شما که اطلاعاتتون قویه بزنید PostBackUrl به نتیجه میرسید

Beginner67
یک شنبه 06 مرداد 1392, 11:24 صبح
داقعا ممنون از اطلاع رسانیتون
شما که اطلاعاتتون قویه بزنید PostBackUrl به نتیجه میرسید

پس شما هم بی زحمت از کارتون یه اجرا بگیرید تا خطاهای جور واجور رو ببینید!!!!
ببینید دوست عزیز من سوال اینجا نپرسیدم که بشینم جواب تست کنم ببینم هر کدوم چندتا خطا داره!
در کل ممنون از لطفتون و حلال کنید.

Beginner67
یک شنبه 06 مرداد 1392, 17:17 عصر
if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem)
{


Label topicfile = (Label)e.Item.FindControl("topicfile");
if (topicfile.Text == null)
{
topicfile.visible=false;
}
}

این کد اجرا نمیشه!!!
در واقع وقتی اجرا میگیرم اگر اون سطرِ فیلد null باشه لیبل نشون داده نمیشه(در اصل نشون داده میشه) و دلیلش اینه که text لیبل به فیلد topicfile وصل شده و چون محتوا null هست به نظر میاد چیزی نشون داده نمیشه!در صورتی که null رو نشون میده.
حالا کافی جای لیبل رو با هایپر عوض کنیم...و به جای اینکه text رو بایند کنیم مثلا navigateurl رو بایند کنیم و text رو یه متن مثل لینک دنلود بذاریم.اینجا معلوم میشه که دستور اجرا نشده.