A 页面 有三个按钮   添加,修改,删除,当点击 任意按钮跳转到 B 页面, B页面里面有个txt文本框      当点击添加的时候 b页面时 txt 可以输入值
      当点击修改的时候 b页面时 txt 不可以输入值
      当点击删除的时候 b页面时 txt 是纸灰状态请问大虾门这个 怎么带参数啊
下面是我写的某段代码。 。 
        private void Insert_Click(object sender, RoutedEventArgs e)
        {            var editWindow = new Telerik.Windows.Controls.RadWindow();
            var list = new DF_QUESTION_SOURCE();
            list.CREATE_TIME = DateTime.Now;
            var editor = new test2();
            editWindow.Content = editor;
            editWindow.WindowStartupLocation = Telerik.Windows.Controls.WindowStartupLocation.CenterScreen;
            editWindow.Height = 400;
            editWindow.Width = 600;
            editWindow.Header = "新建白名单";
            editWindow.DataContext = list;
            editWindow.Closed += (o, ev) =>
            {
                if (ev.DialogResult == true)
                {
                    //var result = (PHL_BLACK_LIST)editor.DataContext;
                    //AddBladkList(result);
                }
            };
            bool state= false;            editWindow.ShowDialog();

解决方案 »

  1.   

    新建一个类,继承Telerik.Windows.Controls.RadWindow,添加一个属性,用以表示是哪种操作:class MyWindow : Telerik.Windows.Controls.RadWindow
    {
        public int ActionType{get;set;}
    }
      private void Insert_Click(object sender, RoutedEventArgs e)
      {  var editWindow = new MyWindow();
      editWindow.ActionType = 1;
      var list = new DF_QUESTION_SOURCE();
      list.CREATE_TIME = DateTime.Now;
      var editor = new test2();
      editWindow.Content = editor;
      editWindow.WindowStartupLocation = Telerik.Windows.Controls.WindowStartupLocation.CenterScreen;
      editWindow.Height = 400;
      editWindow.Width = 600;
      editWindow.Header = "新建白名单";
      editWindow.DataContext = list;
      editWindow.Closed += (o, ev) =>
      {
      if (ev.DialogResult == true)
      {
      //var result = (PHL_BLACK_LIST)editor.DataContext;
      //AddBladkList(result);
      }
      };
      bool state= false;  editWindow.ShowDialog();
    }
      

  2.   

    asp 代码不是很懂,观望……
      

  3.   

    是silerlight 页面传值问题。 。。 解决下啊 
      

  4.   

    真的  我不知道  Actiontype 这个 构造方法咋样用啊。。 
      

  5.   

    难道我没有理解楼主的题意?我怎么觉得直接传个参数到B页面就了事了? Response.Redirect("/B.aspx?action=insert");
    B页面加载时候获取action值Request["action"],判断是点击了哪个按钮。标记【关注】
      

  6.   


     结果还是没有实现。
    楼上的  方法 在silerlight里面 不行。 
      

  7.   

    A页面的代码  private void Insert_Click(object sender, RoutedEventArgs e)
            {            var editWindow = new state();
                editWindow.ActionType = 1;
            private void Update_Click(object sender, RoutedEventArgs e)
            {
                var editWindow = new state();
                editWindow.ActionType = 2;
    B页面的代码  
                var editWindow = new state();
                MessageBox.Show(editWindow.ActionType.ToString());结果弹出来的始终是 0
      

  8.   

    两个按钮的弹出来的结果是一样的。 。 actiontype 没起到作用?
      

  9.   

    你在B里面不能用var editWindow = new state();
    这不就又new了一个新的对象了吗?
    B应该就是一个state对象吧?
    那直接用this.ActionType就可以啦
      

  10.   

    楼上很感谢你回答  问题是怎么传啊 写法。。刚 在B 页面 this.ActionType  点不出来啊。 。
    一个小问题 纠结我一天了 。。郁闷。 。 
      

  11.   

    namespace Maintenance
    {
        public class state:Telerik.Windows.Controls.RadWindow
        {
            public int ActionType
            {
                get;
                set;
            }
        }
    }
    B页面 
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;namespace Maintenance
    {
        public partial class test2 : UserControl
        {
            public test2()
            {
                InitializeComponent();            this.ActionType;
                MessageBox.Show(editWindow.ActionType.ToString());         
            }
        }
    }
      

  12.   

    在B中写一个控制textbox的静态方法,然后在A中点击BTN的时候调用就好了。
      

  13.   

    B页面  
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;namespace Maintenance
    {
      public partial class test2 : state
      {
      public test2()
      {
      InitializeComponent();  
      MessageBox.Show(this.ActionType.ToString());    
      }
      }
    }有个地方我没搞明白,你到底是要弹出一个UserControl呢,还是一个Telerik.Windows.Controls.RadWindow?
      

  14.   

    弹出一  usercontrol这个usercontrol 就是 test2
      

  15.   

    那你怎么在发帖的时候写得是Telerik.Windows.Controls.RadWindow?
    private void Insert_Click(object sender, RoutedEventArgs e)
      {  var editWindow = new Telerik.Windows.Controls.RadWindow();
      var list = new DF_QUESTION_SOURCE();
      list.CREATE_TIME = DateTime.Now;
    这个Telerik.Windows.Controls.RadWindow和你的test2什么关系?
      

  16.   

     我不知道咋回答var editor = new test2();
      editWindow.Content = editor;
    ....
    ...指定test2 页面属性
      

  17.   

    大概明白了,那就不用再定义一个类了,直接在test2里加一个属性即可:using System.Windows.Media.Animation;
    using System.Windows.Shapes;namespace Maintenance
    {
      public partial class test2 : UserControl
      {
      public test2(int actionType)
      {
      InitializeComponent();
        //这里判断actionType,对txt 的状态进行控制
      }
        
      }
    }然后: private void Insert_Click(object sender, RoutedEventArgs e)
      {  var editWindow = new Telerik.Windows.Controls.RadWindow();
      var list = new DF_QUESTION_SOURCE();
      list.CREATE_TIME = DateTime.Now;
      var editor = new test2(1);
      editWindow.Content = editor;
      editWindow.WindowStartupLocation = Telerik.Windows.Controls.WindowStartupLocation.CenterScreen;
      editWindow.Height = 400;
      editWindow.Width = 600;
      editWindow.Header = "新建白名单";
      editWindow.DataContext = list;
      editWindow.Closed += (o, ev) =>
      {
      if (ev.DialogResult == true)
      {
      //var result = (PHL_BLACK_LIST)editor.DataContext;
      //AddBladkList(result);
      }
      };
      bool state= false;  editWindow.ShowDialog();
    }
      

  18.   

     var editor = new test2(1);
      editWindow.Content = editor;这个  test2(1)  可以直接写?
    我还是没看明白。。  
      

  19.   

    可以啊,我不是在上面修改了构造函数吗  public test2(int actionType)
      {
         InitializeComponent();
         //这里判断actionType,对txt 的状态进行控制
      }
      

  20.   

    A 页面 
    namespace Maintenance
    {
        public partial class test1 : UserControl
        {
            DFDomainContext m_Db = new DFDomainContext();
            public test1(int ActionType)
            {
                InitializeComponent();
            }
            state ss = new state();
            private void Insert_Click(object sender, RoutedEventArgs e)
            {            var editWindow = new Telerik.Windows.Controls.RadWindow();
              
                var list = new DF_QUESTION_SOURCE();
                list.CREATE_TIME = DateTime.Now;
               
                var editor = new test2(1);
                editWindow.Content = editor;
                editWindow.WindowStartupLocation = Telerik.Windows.Controls.WindowStartupLocation.CenterScreen;
                editWindow.Height = 400;
                editWindow.Width = 600;
                editWindow.Header = "新建白名单";
                editWindow.DataContext = list;
               
                editWindow.Closed += (o, ev) =>
                {
                    if (ev.DialogResult == true)
                    {
                        //var result = (PHL_BLACK_LIST)editor.DataContext;
                        //AddBladkList(result);
                    }
                };
                          editWindow.ShowDialog();
            }
    B页面 
    namespace Maintenance
    {
        public partial class test2 :state
        {
            public  test2(int ActionType)
            {
                InitializeComponent();            MessageBox.Show(this.ActionType.ToString());         
            }
        }
    }
    B页面 是报错 的  ActionType 没有此对象 
      

  21.   

    汗……test1的构造函数不需要改,test2中不需要用this了……哎……楼主,我劝你先学习一下C#的基础语法比较好……
    namespace Maintenance
    {
      public partial class test1 : UserControl
      {
      DFDomainContext m_Db = new DFDomainContext();
      public test1(int ActionType)//这个不需要
      {
      InitializeComponent();
      }
      state ss = new state();
      private void Insert_Click(object sender, RoutedEventArgs e)
      {  var editWindow = new Telerik.Windows.Controls.RadWindow();
        
      var list = new DF_QUESTION_SOURCE();
      list.CREATE_TIME = DateTime.Now;
        
      var editor = new test2(1);
      editWindow.Content = editor;
      editWindow.WindowStartupLocation = Telerik.Windows.Controls.WindowStartupLocation.CenterScreen;
      editWindow.Height = 400;
      editWindow.Width = 600;
      editWindow.Header = "新建白名单";
      editWindow.DataContext = list;
        
      editWindow.Closed += (o, ev) =>
      {
      if (ev.DialogResult == true)
      {
      //var result = (PHL_BLACK_LIST)editor.DataContext;
      //AddBladkList(result);
      }
      };
          editWindow.ShowDialog();
      }
    B页面  
    namespace Maintenance
    {
      public partial class test2 :state
      {
      public test2(int ActionType)
      {
      InitializeComponent();  MessageBox.Show(this.ActionType.ToString());//这里也不需要    
      }
      }
    }
      

  22.   

    不管咋样  还是感谢 ojlovecd。。