поле ввода в asp.net c # - PullRequest
       16

поле ввода в asp.net c #

2 голосов
/ 12 мая 2011

Мне нужно создать простое поле ввода на моем сайте в C #.Он должен всплывать, когда я вызываю его в коде, подобном этому

String input = InputBox("Name the file"); 

, а затем мне нужна строка использования, которую пользователи вводят позже в коде. В приложении .net это довольно легко выполнить,но как я могу заставить его работать в веб-приложении?Я думаю, что это должно быть возможно с ajax, но это кажется довольно сложным для такой (на первый взгляд) тривиальной вещи.Есть ли какая-нибудь библиотека или фреймворк, которые я могу использовать для этого сразу?

заранее спасибо

Ответы [ 6 ]

4 голосов
/ 12 мая 2011

Мне кажется, что поведение, которое вы ищете, состоит в том, чтобы получить всплывающее окно с текстовым полем для ввода пользователем значения и нажать кнопку ОК. Это верно?

Вы правы, говоря, что с веб-приложением все сложнее. В приложении Windows всякий раз, когда вы запускаете код C #, что бы ни происходило, это происходит в этот момент. Это довольно просто. Однако в веб-приложении весь C # запускается еще до того, как страница отображается в браузере. Следовательно, C # в веб-формах не может действительно открыть окно.

Чтобы получить всплывающее окно, вам нужно сделать это с помощью JavaScript. Текстовое поле внутри всплывающего окна должно быть элементом <asp:Textbox>. Вы можете использовать Ajax Control Toolkit , если вам удобнее всего управлять .NET. Если вы совместимы с jQuery, вы должны проверить jQuery UI .

1 голос
/ 12 мая 2011

Если вы ищете простое решение для POPUP, которое получит пользовательский ввод, я рекомендую проверить диалоговый виджет JQuery. В частности, модальная форма, вот ссылка на дополнительную информацию: http://jqueryui.com/demos/dialog/#modal-form

1 голос
/ 12 мая 2011

Он должен всплывать, когда я вызываю его в таком коде

А когда именно это?Имейте в виду, что есть принципиальная разница между автономной веб-разработкой и разработкой приложений.Весь ваш код C # на стороне сервера уже завершился до того, как веб-страница отобразится в браузере.Итак, когда вы собираетесь назвать этот код?Кроме того, как вы собираетесь передавать данные обратно на сервер?Форма сообщения?Вызов AJAX?

Если вы хотите, чтобы он «всплывал» и отправлял сообщения с помощью AJAX, я рекомендую jQuery UI Dialog в качестве фактического всплывающего окна.Затем на его событии close вы можете сделать AJAX-вызов на сервер для публикации данных.

1 голос
/ 12 мая 2011

Я предполагаю, что вы используете веб-формы.

Самое простое - создать веб-форму с одним полем ввода (<asp:textbox runat="server" id="inputfield" />). Добавьте кнопку с событием onclick (<asp:button runat="server" id="button" onclick="OnClick" />. В обработчике события onclick вы что-то делаете со значением.

protected void OnClick(object sender, EventArgs args){
  string input = inputfield.Text;
  // do something
}
0 голосов
/ 20 марта 2015
  public class InputBox
        {
            public static DialogResult Show(string title, string promptText, ref string value)
            {
                return Show(title, promptText, ref value, null);
            }




//Fuction


            public static DialogResult Show(string title, string promptText, ref string value,
                                            InputBoxValidation validation)
            {
                Form form = new Form();
                Label label = new Label();
                TextBox textBox = new TextBox();
                Button buttonOk = new Button();
                Button buttonCancel = new Button();

                form.Text = title;
                label.Text = promptText;
                textBox.Text = value;

                buttonOk.Text = "OK";
                buttonCancel.Text = "Cancel";
                buttonOk.DialogResult = DialogResult.OK;
                buttonCancel.DialogResult = DialogResult.Cancel;

                label.SetBounds(9, 20, 372, 13);
                textBox.SetBounds(12, 36, 372, 20);
                buttonOk.SetBounds(228, 72, 75, 23);
                buttonCancel.SetBounds(309, 72, 75, 23);

                label.AutoSize = true;
                textBox.Anchor = textBox.Anchor | AnchorStyles.Right;
                buttonOk.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
                buttonCancel.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;

                form.ClientSize = new Size(396, 107);
                form.Controls.AddRange(new Control[] { label, textBox, buttonOk, buttonCancel });
                form.ClientSize = new Size(Math.Max(300, label.Right + 10), form.ClientSize.Height);
                form.FormBorderStyle = FormBorderStyle.FixedDialog;
                form.StartPosition = FormStartPosition.CenterScreen;
                form.MinimizeBox = false;
                form.MaximizeBox = false;
                form.AcceptButton = buttonOk;
                form.CancelButton = buttonCancel;
                if (validation != null)
                {
                    form.FormClosing += delegate(object sender, FormClosingEventArgs e)
                    {
                        if (form.DialogResult == DialogResult.OK)
                        {
                            string errorText = validation(textBox.Text);
                            if (e.Cancel = (errorText != ""))
                            {
                                MessageBox.Show(form, errorText, "Validation Error",
                                                MessageBoxButtons.OK, MessageBoxIcon.Error);
                                textBox.Focus();
                            }
                        }
                    };
                }
                DialogResult dialogResult = form.ShowDialog();
                value = textBox.Text;
                return dialogResult;
            }
        }
        public delegate string InputBoxValidation(string errorMessage);





















private void button_updations_Click(object sender, EventArgs e)
        {

            InputBoxValidation validation = delegate(string val)
            {
                if (val == "")
                    return "Value cannot be empty.";
                if (!(new Regex(@"^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9_\-\.]+\.[a-zA-Z]{2,}$")).IsMatch(val))
                    return "Email address is not valid.";
                return "";
            };

            string value = "";
            if (InputBox.Show("Enter your email address", "Email address:", ref value, validation) == DialogResult.OK)
            {

                if (value == "thazime7@gmail.com")
                {
                    dataGridView1.Visible = true;
                    button_delete.Visible = true;
                    button1.Visible = true;
                    button_show.Visible = true;
                    label6.Visible = true;
                    label4.Visible = true;
                    label5.Visible = true;
                    textBox_uemail.Visible = true;
                    textBox_uname.Visible = true;
                    textBox_upassword.Visible = true;
                    textBox_delete.Visible = true;
                    button_deleteTable.Visible = true;

                    button_updatep.Visible = true;
                    textBox_updateall.Visible = true;
                }
                MessageBox.Show(value);
            }
            else
            {
                MessageBox.Show("You are not authenticated");





            }
        }
0 голосов
/ 12 мая 2011

ASP.NET имеет TextBox элемент управления, который делает именно это. Все элементы с runat = "server" доступны через код на стороне сервера.

...