0

私はこれで立ち往生しています。グリッドビューと sqldatasource があります。MSSQL データベースにレコードを追加するためのリンクボタンを含むフッター行を作成しました。

ここに画像の説明を入力

最後のフィールドであるチェックボックスを除くすべてのフィールドを挿入できます。これは BIT です。これは私のイベントハンドラです:

protected void lnkInsert_Click(object sender, EventArgs e)
{
    SqlDataSource1.InsertParameters["name"].DefaultValue =
        ((TextBox)GridView1.FooterRow.FindControl("txtName")).Text;

    SqlDataSource1.InsertParameters["username"].DefaultValue =
        ((TextBox)GridView1.FooterRow.FindControl("txtUsername")).Text;

    SqlDataSource1.InsertParameters["pass"].DefaultValue =
        ((TextBox)GridView1.FooterRow.FindControl("txtPass")).Text;

    SqlDataSource1.InsertParameters["uread"].DefaultValue =
        ((TextBox)GridView1.FooterRow.FindControl("txtUread")).Text;

    SqlDataSource1.InsertParameters["udownload"].DefaultValue =
        ((TextBox)GridView1.FooterRow.FindControl("txtUdownload")).Text;

    SqlDataSource1.InsertParameters["udelete"].DefaultValue =
        ((TextBox)GridView1.FooterRow.FindControl("txtUdelete")).Text;

    SqlDataSource1.InsertParameters["umail"].DefaultValue =
       ((TextBox)GridView1.FooterRow.FindControl("txtUmail")).Text;

    SqlDataSource1.InsertParameters["is_admin"].DefaultValue =
        ((CheckBox)GridView1.FooterRow.FindControl("chkCredential")).Checked;

    SqlDataSource1.Insert();

}

チェックボックスに関する別のバージョンの行を試してみました。Bool、Boolean などを使用してみましたが、機能させる方法が見つかりません。「bool を文字列に変換できません」などのエラーが発生し続けます。この行をどのように書くべきですか:

SqlDataSource1.InsertParameters["is_admin"].DefaultValue =
        ((CheckBox)GridView1.FooterRow.FindControl("chkCredential")).Checked;

Aspx

<asp:TemplateField HeaderText="Admin" SortExpression="is_admin">
<EditItemTemplate>
  <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Bind("is_admin") %>' />
    </EditItemTemplate>
     <FooterTemplate>
      <asp:CheckBox ID="chkCredential" runat="server" />
       </FooterTemplate>
         <ItemTemplate>
          <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Bind("is_admin") %>' Enabled="false" />
         </ItemTemplate>
  </asp:TemplateField>

それを機能させるには?いくつかの助けをいただければ幸いです。

4

2 に答える 2

2

if((CheckBox)GridView1.FooterRow.FindControl("chkCredential")).Checked==true) then SqlDataSource1.InsertParameters["is_admin"].DefaultValue="1"; それ以外は「0」

于 2013-09-30T06:52:49.367 に答える
1

これを試すことができますか:

SqlDataSource1.InsertParameters["is_admin"].DefaultValue =
    ((CheckBox)GridView1.FooterRow.FindControl("chkCredential")).Checked.ToString().ToLower();
于 2013-09-30T05:11:28.620 に答える