У меня есть 3 флажка, идентификатор - chkIPP, chkOutReach и chkCCA. Когда пользователь устанавливает один из этих флажков, значение будет вставлено в поле столбца BlogType. Я хочу вставить 3 значения: истории IPP, OutReach Activities и CCA. Я хочу установить только один флажок. В поле столбца blogType будет вставлено только одно значение.
Я думаю, что приблизительный элемент управления должен быть переключателем или раскрывающимся списком, поскольку только один может быть выбран и вставлен в базу данных, но мой учитель сказал мне использовать флажок. Таким образом, пользователь будет вводить текстовое поле 3 и устанавливать один из флажков, и значения будут вставлены в базу данных. Я уже закодировал 3 текстовых поля. Остался с флажками. Спасибо
после предложения @serhads. Правильно ли я сделал?
protected void btnSubmit_Click(object sender, EventArgs e)
{
string AdminNumber = Convert.ToString(txtAdmin.Text);
string Name = Convert.ToString(txtName.Text);
string BlogStory = Convert.ToString(txtStory.Text);
insertGameRecord(AdminNumber, Name, BlogStory);
}
private void insertGameRecord(string admin, string name, string story)
{
try
{
string strConnectionString = ConfigurationManager.ConnectionStrings["BlogConnectionString"].ConnectionString;
SqlConnection myConnect = new SqlConnection(strConnectionString);
string strCommandText = "INSERT EntryTable(AdminNumber, Name, BlogStory, DateEntry) Values(@AdminNumber, @Name, @BlogStory, @DateEntry)";
SqlCommand cmd = new SqlCommand(strCommandText, myConnect);
cmd.Parameters.AddWithValue("@AdminNumber", admin);
cmd.Parameters.AddWithValue("@Name", name);
cmd.Parameters.AddWithValue("@BlogStory", story);
cmd.Parameters.Add("DateEntry", SqlDbType.DateTime);
cmd.Parameters["DateEntry"].Value = DateTime.Now;
myConnect.Open();
int result = cmd.ExecuteNonQuery();
if (result > 0)
{ lblError.Text = "Record Updated";
bindResultGridView();
}
else { lblError.Text = "Update fail"; }
myConnect.Close();
}
catch(Exception)
{
lblError.Text = "Please enter correct data";
}
}
3 ответа
Сделать это можно двумя способами:
1. Использование JQuery:
При щелчке каждого флажка отключите все три флажка с помощью JQuery, как указано в примере кода ниже:
HTML:
<asp:CheckBox runat="server" ID="chkIPP" CssClass="check" />
<asp:CheckBox runat="server" ID="chkOutReach" CssClass="check" />
<asp:CheckBox runat="server" ID="chkCCA" CssClass="check" />
<asp:Button runat="server" ID="buttonSubmit" Text="Submit" OnClick="buttonTest_OnClick" />
JavaScript:
$('.check').click(function () {
$('.check').each(function () {
$(this).prop('disabled', 'disabled');
});
});
2. Использование списка флажков с событием SelectedIndexChanged :
HTML:
<asp:CheckBoxList runat="server" ID="cblType" OnSelectedIndexChanged="cblType_OnSelectedIndexChanged" AutoPostBack="True">
<Items>
<asp:ListItem Text="IPP Stories" Value="IPP Stories"></asp:ListItem>
<asp:ListItem Text="OutReach Activities " Value="OutReach Activities"></asp:ListItem>
<asp:ListItem Text="CCA" Value="CCA"></asp:ListItem>
</Items>
</asp:CheckBoxList>
<asp:Button runat="server" ID="buttonSubmit" Text="Submit" OnClick="buttonTest_OnClick" />
Отложенный код:
protected void cblType_OnSelectedIndexChanged(object sender, EventArgs e)
{
this.cblType.Enabled = false;
}
Событие нажатия кнопки "Отправить":
protected void btnSubmit_Click(object sender, EventArgs e)
{
string AdminNumber = Convert.ToString(txtAdmin.Text);
string Name = Convert.ToString(txtName.Text);
string BlogStory = Convert.ToString(txtStory.Text);
string BlogType = cblType.SelectedValue;
insertGameRecord(AdminNumber, Name, BlogStory, BlogType);
}
У вас есть другая таблица для BlogType? Если да, я предлагаю вам создать еще одну таблицу между таблицей BlogType и EntryTable. Затем вы можете сохранить выбранные значения флажков в этой таблице. Таблица может быть такой.
ID << primary key
BlogID << EntryTable referance id
BlogTypeID << BlogType table referance id
Таким образом вы можете вставить новую запись для каждого выбранного значения флажка по BlogId.
- вам нужно заменить флажок на переключатель или раскрывающийся список, чтобы выбрать любой вариант.
Я предполагаю, что вы создали раскрывающийся список с именем "drpBlogType"
protected void btnSubmit_Click(object sender, EventArgs e)
{
string AdminNumber = Convert.ToString(txtAdmin.Text);
string Name = Convert.ToString(txtName.Text);
string BlogStory = Convert.ToString(txtStory.Text);
// get value or dropdown
string BlogType = drpBlogType.SelectedValue;
insertGameRecord(AdminNumber, Name, BlogStory,BlogType);
}
private void insertGameRecord(string admin, string name, string story,string BlogType)
{
try
{
string strConnectionString = ConfigurationManager.ConnectionStrings["BlogConnectionString"].ConnectionString;
SqlConnection myConnect = new SqlConnection(strConnectionString);
string strCommandText = "INSERT EntryTable(AdminNumber, Name, BlogStory, DateEntry,BlogType) Values(@AdminNumber, @Name, @BlogStory, @DateEntry,@BlogType)";
SqlCommand cmd = new SqlCommand(strCommandText, myConnect);
cmd.Parameters.AddWithValue("@AdminNumber", admin);
cmd.Parameters.AddWithValue("@Name", name);
cmd.Parameters.AddWithValue("@BlogStory", story);
cmd.Parameters.AddWithValue("@BlogType", BlogType);
cmd.Parameters.Add("DateEntry", SqlDbType.DateTime);
cmd.Parameters["DateEntry"].Value = DateTime.Now;
myConnect.Open();
int result = cmd.ExecuteNonQuery();
if (result > 0)
{ lblError.Text = "Record Updated";
bindResultGridView();
}
else { lblError.Text = "Update fail"; }
myConnect.Close();
}
catch(Exception)
{
lblError.Text = "Please enter correct data";
}
}
Похожие вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.