PDA

View Full Version : نحوه دسترسی به کنترل درون repeater



alibabaei2
چهارشنبه 11 خرداد 1390, 21:04 عصر
با سلام
چگونه به کنترلی که درون یک repeater است در code behind دسترسی پیدا کنم؟

b.paseban
پنج شنبه 12 خرداد 1390, 10:48 صبح
سلام بر شما.شما باید بوسیله findcontrol به اون کنترل های مورد نظر دسترسی داشته باشید.
http://forums.asp.net/t/1110178.aspx
http://stackoverflow.com/questions/1203316/cant-find-control-within-asp-net-repeater
http://stackoverflow.com/questions/701412/how-to-find-controls-in-a-repeater-header-or-footer
http://www.velocityreviews.com/forums/t90329-find-control-inside-a-repeater.html

alibabaei2
پنج شنبه 12 خرداد 1390, 13:44 عصر
واقعا ممنونم
کارم راه افتاد

jan_kocholo
پنج شنبه 13 فروردین 1394, 14:33 عصر
سلام. راه دیگه ایی وجود نداره؟

آخه به بعضی از خاصیت ها، مثل enable با text از این روش نمیشه دسترسی داشت :ناراحت:

ممنون میشم راهنمایی کنید. سپاس

jan_kocholo
پنج شنبه 13 فروردین 1394, 16:52 عصر
خودم یافتم :لبخند:

DropDownList tGroup = (DropDownList)view_rep.Items[0].FindControl("txt_group");
tGroup.Enabled = true;


مرسی از همگی :قلب:

jan_kocholo
پنج شنبه 13 فروردین 1394, 18:58 عصر
ولی یه مشکل دیگه :ناراحت:

وقتی این کد رو توی form load میزارم، این ارور رو میده!!

Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index

ممنون میشم راهنماییم کنید :متفکر:

jan_kocholo
یک شنبه 16 فروردین 1394, 06:18 صبح
کسی نبود جواب ما رو بده !؟ :افسرده:

jan_kocholo
سه شنبه 18 فروردین 1394, 22:39 عصر
عاغا مشکلم با فرم لود حل شد. به یه مشکل دیگه برخوردم..
میخاستم توی این صفحه که کدهاش رو گذاشتم، کاربر بتونه پیغامی که ارسال کرده رو بتونه edit کنه..

ولی وقتی که روی دکمه ویرایش میزنه، این کارو انجام نمیده. اگر که بجای این کد...

sqlCmd.Parameters.AddWithValue("@eblaq_hoze", tHoze.Text.Trim());

این کد رو برازیم

sqlCmd.Parameters.AddWithValue("@eblaq_hoze","شبراز");

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


این کدهای صفحه....

<%@ Page Title="" Language="C#‎" MasterPageFile="~/admin/admin.Master" AutoEventWireup="true"
CodeBehind="view_eblaq.aspx.cs" Inherits="PrivateMessage.admin.view_eblaq" %>


<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<asp:SqlDataSource ID="relatedBy" runat="server" ConnectionString="<%$ ConnectionStrings:PMConnectionString %>"
SelectCommand="SELECT [user_mail] , [user_fn] , [user_ln] , user_fn + ' - ' + user_ln + ' - ' + user_mail AS [new] FROM [tbl_users] ORDER BY [user_ln]">
</asp:SqlDataSource>
<div class="container">
<div class="row">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div class="col-sm-2 col-md-2">
<ul class="nav nav-pills nav-stacked">
<li><a href="inbox.aspx">پیام های ورودی
<%=get_unread_msg() %>
</a></li>
<li><a href="outbox.aspx">پیام های خروجی</a> </li>
<li><a href="new.aspx">ایجاد پیام جدید</a> </li>
<li class="active"><a href="new_eblaq.aspx">ابلاغیه ها</a> </li>
<li><a href="../login.aspx">خروج از سایت</a> </li>
</ul>
</div>
<div class="col-sm-10 col-md-10">
<asp:Repeater ID="view_rep" runat="server">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<div class="panel panel-default">
<div class="panel-heading">
نمایش ابلاغیه</div>
<div class="panel-body">
<div class="form-group" style="width: 33.33%; float: right">
<label for="txt_group" style="padding: 0; width: 20%; text-align: left" class="col-sm-1 control-label">
نام گروه</label>
<div class="col-sm-3 col-md-3" style="width: 80%; float: left">
<asp:DropDownList ID="txt_group" runat="server" CssClass="form-control" AppendDataBoundItems="True"
DataSourceID="SqlDataSourceGroups" DataTextField="gName" DataValueField="gId"
SelectedValue='<%# Eval("eblaq_group") %>' AutoPostBack="True" ViewStateMode="Inherit"
OnSelectedIndexChanged="txt_group_SelectedIndexChanged">
<asp:ListItem Value="0">لطفا انتخاب نمایید ...</asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSourceGroups" runat="server" ConnectionString="<%$ ConnectionStrings:PMConnectionString %>"
SelectCommand="SELECT * FROM [tbl_groups] ORDER BY [gID]"></asp:SqlDataSource>
</div>
</div>
<div class="form-group" style="width: 33.33%; float: right">
<label for="txt_major" style="padding: 0; width: 20%; text-align: left" class="col-sm-1 control-label">
نام رشته</label>
<div class="col-sm-3 col-md-3" style="width: 80%; float: left">
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<asp:DropDownList ID="txt_major" runat="server" CssClass="form-control" AppendDataBoundItems="True"
DataTextField="rName" DataValueField="rId" DataSourceID="SqlDataSourceReshte"
SelectedValue='<%# Eval("eblaq_reshte") %>'>
<asp:ListItem Value="0">لطفا انتخاب نمایید ...</asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSourceReshte" runat="server" ConnectionString="<%$ ConnectionStrings:PMConnectionString %>"
SelectCommand="SELECT * FROM [tbl_reshte] ORDER BY [rID]"></asp:SqlDataSource>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="txt_group" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
</div>
</div>
<div class="form-group" style="width: 33.33%; float: right">
<label for="txt_user" style="padding: 0; width: 20%; text-align: left" class="col-sm-1 control-label">
نام کارشناس</label>
<div class="col-sm-3 col-md-3" style="width: 80%; float: left">
<asp:DropDownList ID="txt_user" CssClass="form-control" runat="server" DataSourceID="relatedBy"
DataTextField="new" DataValueField="user_ln" AppendDataBoundItems="True" SelectedValue='<%# Eval("eblaq_receiver") %>'>
<asp:ListItem Selected="True">انتخاب کنید</asp:ListItem>
</asp:DropDownList>
</div>
</div>
<div class="form-group" style="width: 33.33%; float: right">
<label for="txt_hoze" style="padding: 0; width: 20%; text-align: left" class="col-sm-1 control-label">
حوزه دادگاه</label>
<div class="col-sm-3 col-md-3" style="width: 80%; float: left">
<asp:TextBox ID="txt_hoze" CssClass="form-control" runat="server" Text='<%# Eval("eblaq_hoze") %>'></asp:TextBox>
</div>
</div>
<div class="form-group" style="width: 33.33%; float: right">
<label for="txt_shobe" style="padding: 0; width: 20%; text-align: left" class="col-sm-1 control-label">
شعبه دادگاه</label>
<div class="col-sm-3 col-md-3" style="width: 80%; float: left">
<asp:TextBox ID="txt_shobe" CssClass="form-control" runat="server" Text='<%# Eval("eblaq_shobe") %>'></asp:TextBox>
</div>
</div>
<div class="form-group" style="width: 33.33%; float: right">
<label for="txt_shParvande" style="padding: 0; width: 20%; text-align: left" class="col-sm-1 control-label">
شماره پرونده</label>
<div class="col-sm-3 col-md-3" style="width: 80%; float: left">
<asp:TextBox ID="txt_shParvande" CssClass="form-control" runat="server" Text='<%# Eval("eblaq_shParvande") %>'></asp:TextBox>
</div>
</div>
<div class="form-group" style="width: 33.33%; float: right">
<label for="txt_kease" style="padding: 0; width: 20%; text-align: left" class="col-sm-1 control-label">
کلاسه پرونده</label>
<div class="col-sm-3 col-md-3" style="width: 80%; float: left">
<asp:TextBox ID="txt_kease" CssClass="form-control" runat="server" Text='<%# Eval("eblaq_kelase") %>'></asp:TextBox>
</div>
</div>
<div class="form-group" style="width: 33.33%; float: right">
<label for="txt_tarikh" style="padding: 0; width: 20%; text-align: left" class="col-sm-1 control-label">
تاریخ</label>
<div class="col-sm-3 col-md-3" style="width: 80%; float: left">
<asp:TextBox ID="txt_tarikh" CssClass="form-control" runat="server" Text='<%# Eval("eblaq_tarikh") %>'></asp:TextBox>
</div>
</div>
<div class="form-group" style="width: 33.33%; float: right">
<label for="txt_enlaq" style="padding: 0; width: 20%; text-align: left" class="col-sm-1 control-label">
تصویر ابلاغیه</label>
<div class="col-sm-3 col-md-3" style="width: 80%; float: left">
<asp:FileUpload ID="up_eblaq" CssClass="form-control" runat="server" />
</div>
</div>
<div class="form-group">
<div class="col-sm-10 col-md-10" style="width: 100%; text-align: center;">
<asp:Image ID="img_eblaq" CssClass="img-thumbnail" runat="server" Width="100%" Height="100%"
ImageUrl='<%# Eval("eblaq_path") %>' AlternateText="برای مشاهده کامل تصویر، راست کلیک و Open New Tab را انتخاب کنید"
ImageAlign="Middle" />
</div>
</div>
</div>
</ItemTemplate>
<FooterTemplate>
</FooterTemplate>
</asp:Repeater>
<!--
<div class="panel-footer">
panel footer</div>

</div>

<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
-->
<asp:Button ID="btn_delete" CssClass=" btn btn-danger" runat="server" Text="حذف کردن این ابلاغیه"
OnClick="btn_delete_Click" />
<asp:Button ID="btnEditEblaq" CssClass="btn btn-primary" runat="server" Text="ثبت ویرایش ابلاغیه"
OnClick="btnEditEblaq_Click" />
</div>
</div>
</div>
</asp:Content>




اینم کدهای C#‎ .....

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.IO;


namespace PrivateMessage.admin
{
public partial class view_eblaq : System.Web.UI.Page
{

protected void Page_Load(object sender, EventArgs e)
{
Page.Title = "نمایش ابلاغیه";
if (Session["user"] == null)
{
Response.Redirect("login.aspx");
}
if (Request.QueryString["eblaq_id"] != null)
{
string eblaq_id = Request.QueryString["eblaq_id"].ToString();
DAL dal = new DAL();
dal.connect();
SqlDataReader reader = dal.Reader("SELECT * FROM tbl_eblaq WHERE eblaq_ID=" + eblaq_id);
view_rep.DataSource = reader;
view_rep.DataBind();
reader.Close();
dal.docommand("UPDATE tbl_eblaq SET eblaq_read=1 WHERE eblaq_ID=" + eblaq_id);
dal.disconnect();
}

DropDownList tMajor = (DropDownList)view_rep.Items[0].FindControl("txt_major");
tMajor.Enabled = false;
}


public string get_unread_msg()
{
string html = "";
DAL dal = new DAL();
string current_user = Session["user"].ToString();
dal.connect();
string sql = string.Format("SELECT COUNT(msg_ID) FROM tbl_messages WHERE msg_receiver='{0}' AND msg_read=0", current_user);
int rows = dal.GetOneInt(sql);
if (rows > 0)
{
html = "<span class=\"badge pull-left\">" + rows + "</span>";
}
return html;
}


protected void btn_delete_Click(object sender, EventArgs e)
{
if (Request.QueryString["eblaq_id"] != null)
{
string eblaq_id = Request.QueryString["eblaq_id"].ToString();
DAL dal = new DAL();
dal.connect();
if (Request.QueryString["receiver"] != null)
{
int deleted = dal.GetOneInt("SELECT eblaq_deleted FROM tbl_eblaq WHERE eblaq_ID=" + eblaq_id);
if (deleted == 0)
{
dal.docommand("UPDATE tbl_eblaq SET eblaq_deleted=2 WHERE eblaq_ID=" + eblaq_id);
Response.Redirect("new_eblaq.aspx");
}
else
{
dal.docommand("DELETE FROM tbl_eblaq WHERE eblaq_ID=" + eblaq_id);
Response.Redirect("new_eblaq.aspx");
}
}
if (Request.QueryString["sender"] != null)
{
int deleted = dal.GetOneInt("SELECT eblaq_deleted FROM tbl_eblaq WHERE eblaq_ID=" + eblaq_id);
if (deleted == 0)
{
dal.docommand("UPDATE tbl_eblaq SET eblaq_deleted=1 WHERE eblaq_ID=" + eblaq_id);
Response.Redirect("new_eblaq.aspx");
}
else
{
dal.docommand("DELETE FROM tbl_eblaq WHERE eblaq_ID=" + eblaq_id);
Response.Redirect("new_eblaq.aspx");
}
}
}
}


protected void txt_group_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList tGroup = (DropDownList)view_rep.Items[0].FindControl("txt_group");
DropDownList tMajor = (DropDownList)view_rep.Items[0].FindControl("txt_major");
int i;
i = Convert.ToInt32(tGroup.SelectedValue);
if (i == 0)
{


}
else
{
tMajor.Enabled = true;
tMajor.Items.Clear();
tMajor.Items.Add("لطفا انتخاب نمایید ...");
SqlDataSource sqlDSreshte = (SqlDataSource)view_rep.Items[0].FindControl("SqlDataSourceReshte");
sqlDSreshte.SelectCommand = "select * from tbl_reshte where gID=" + tGroup.SelectedValue.ToString();
}
}


protected void btnEditEblaq_Click(object sender, EventArgs e)
{
string eblaq_id = Request.QueryString["eblaq_id"].ToString();

DropDownList tGroup = (DropDownList)view_rep.Items[0].FindControl("txt_group");
DropDownList tMajor = (DropDownList)view_rep.Items[0].FindControl("txt_major");
DropDownList tUser = (DropDownList)view_rep.Items[0].FindControl("txt_user");
TextBox tHoze = (TextBox)view_rep.Items[0].FindControl("txt_hoze");
TextBox tShobe = (TextBox)view_rep.Items[0].FindControl("txt_shobe");
TextBox tShParvande = (TextBox)view_rep.Items[0].FindControl("txt_shParvande");
TextBox tKelase = (TextBox)view_rep.Items[0].FindControl("txt_kease");
TextBox tTarikh = (TextBox)view_rep.Items[0].FindControl("txt_tarikh");
FileUpload tEblaq = (FileUpload)view_rep.Items[0].FindControl("up_eblaq");

SqlConnection sqlConn = new SqlConnection();
sqlConn.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Mehd ii\Desktop\PrivateMessage\PrivateMessage\PM.mdf;In tegrated Security=True;Connect Timeout=30;User Instance=True";
SqlCommand sqlCmd = new SqlCommand("UPDATE tbl_eblaq SET [eblaq_sender]=@eblaq_sender, [eblaq_group]=@eblaq_group, [eblaq_reshte]=@eblaq_reshte, [eblaq_receiver]=@eblaq_receiver, [eblaq_hoze]=@eblaq_hoze, [eblaq_shobe]=@eblaq_shobe, [eblaq_shParvande]=@eblaq_shParvande, [eblaq_kelase]=@eblaq_kelase, [eblaq_tarikh]=@eblaq_tarikh, [eblaq_path]=@eblaq_path WHERE eblaq_ID=" + eblaq_id, sqlConn);
sqlConn.Open();
sqlCmd.Parameters.AddWithValue("@eblaq_sender",Session["user"].ToString());
sqlCmd.Parameters.AddWithValue("@eblaq_group", tGroup.SelectedValue);
sqlCmd.Parameters.AddWithValue("@eblaq_reshte", tMajor.SelectedValue);
sqlCmd.Parameters.AddWithValue("@eblaq_receiver", tUser.SelectedValue);
sqlCmd.Parameters.AddWithValue("@eblaq_hoze", tHoze.Text.Trim());
sqlCmd.Parameters.AddWithValue("@eblaq_shobe", tShobe.Text.Trim());
sqlCmd.Parameters.AddWithValue("@eblaq_shParvande", tShParvande.Text.Trim());
sqlCmd.Parameters.AddWithValue("@eblaq_kelase", tKelase.Text.Trim());
sqlCmd.Parameters.AddWithValue("@eblaq_tarikh", tTarikh.Text.Trim());

if (tEblaq.HasFile)
{
tEblaq.SaveAs(Server.MapPath("~/pic_eblaq/") + tEblaq.FileName);
}
sqlCmd.Parameters.AddWithValue("@eblaq_path", ("~/pic_eblaq/") + tEblaq.FileName);
view_rep.DataSource = sqlCmd.ExecuteReader();
view_rep.DataBind();
sqlConn.Close();
Response.Redirect("new_eblaq.aspx");
}
}
}



ممنون میشم دوستان عزیز راهنمایی کنند...

سپاس

jan_kocholo
پنج شنبه 20 فروردین 1394, 13:50 عصر
اساتید کسی نیست ما رو راهنمایی کنه ؟

jan_kocholo
یک شنبه 23 فروردین 1394, 14:57 عصر
کسی نبود !!!!

jan_kocholo
سه شنبه 25 فروردین 1394, 13:02 عصر
عاغا یکی جوابمون بده :گریه: