我试图建立一个小型网站,但您可以创建一个表,然后从该表中生成一个数据库。我有两个用于输入类型/名称的字段,还有一个用于 NotNULL 的复选框。
现在我的问题是,如果客户端(浏览器)请求更改 COLUMN COUNT ,我想“存储”所做的更改,然后添加/删除单元格,为此想要发送ture / false而不是checked / NULL。这样我就可以将它们存储到notNull数组(控制器代码)中
这是我的网站的样子:
我还希望右键[0]显示“ +”而不是其值,即使使用<input>
字段也可以吗?
@for (int i = 0; i < @Model.Columns.Count; i++)
{
<tr>
<td id="td_id">
<input list="types" class="form-control" name="typeSelected" value="@Model.Columns[i].DbType">
<datalist id="types">
@foreach (var item in @Model.Columns[i].Types)
{
<option value="@item">@item</option>
}
</datalist>
</td>
<td>
<input type="text" class="form-control" name="Name" value="@Model.Columns[i].Name" />
</td>
<td>
@*@Html.CheckBoxFor(model => model.Columns[i].notNull, new { @name="notNull" })*@
<input type="checkbox" name="notNull" class="checkbox" checked="@Model.Columns[i].notNull" value="true" />
<input type="hidden" name="notNull" class="checkbox" checked="@Model.Columns[i].notNull" value="false" />
</td>
<td>
<input type="submit" class="btn btn-default" name="addCell" value="@i" />
</td>
</tr>
}
private CreateTableModels model = new CreateTableModels();
//
// GET: /CreateTable/
public ActionResult Index(int count = 1, System.Data.SqlDbType[] typeSelected = null, string[] Name = null, bool[] notNull = null, string[] addCell = null)
{
if (count < 0)
{
return View(model);
}
while (count > model.Columns.Count)
{
model.Columns.Add(new QlikViewStammdaten.Models.CreateTableColumnModels());
}
while (count < model.Columns.Count)
{
model.Columns.RemoveAt(model.Columns.Count - 1);
}
SetOldValues(typeSelected, "DbType");
SetOldValues(Name, "Name");
SetOldValues(notNull, "notNull");
return View(model);
}
private void SetOldValues<T>(T[] type, string name)
{
if (type != null)
{
for (int i = 0; i < type.Count(); i++)
{
var obj = model.Columns[i];
var prop = obj.GetType().GetProperty(name);
if (prop != null && prop.CanWrite)
{
prop.SetValue(obj, type[i], null);
}
}
}
}