مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

janii

عضویت از 1394/01/10

نحوه دسترسی به کنترل درون repeater

  • پنجشنبه 20 فروردین 1394
  • 18:44
تشکر میکنم

میخاستم توی این صفحه که کدهاش رو گذاشتم، کاربر بتونه پیغامی که ارسال کرده رو بتونه edit کنه..

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


 

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

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

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

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

فکر کنم مشکل از نحوه دسترسی به کنترل های درون repeater باشه!!

ولی نمیدونم چرا مقدار دستی که بهش میدم، کار میکنه. ولی از کنترل های درون repeater باشه، کار نمیکنه!!

 

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

<%@ 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_SelectedIndexCha  nged">
                                            <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",Ses  sion["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");
        }
    }
}

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


سپاس

پاسخ های این پرسش

تعداد پاسخ ها : 1 پاسخ
کاربر سایت

janii

عضویت از 1394/01/10

  • پنجشنبه 20 فروردین 1394
  • 19:12

نمیشه به جای این کد...

view_rep.DataSource = reader;
                view_rep.DataBind();

چیزه دیگه ایی نوشت که نخام از repeater استفاده کنم !

یا حتی اگه به یه div هم بخام بهش ID بدم، بازم همینجوره :(

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)