5

[Assign a Textbox Value to the modal-box on the same page已回答]

新问题: 为什么当我点击按钮时模式框上的按钮没有被触发?我错过了什么吗?

我添加了处理服务器端点击事件的代码:

Protected Sub Save_Button_Click(sender As Object, e As System.EventArgs) Handles Save_Button.Click
    //The code goes here
End Sub

请参阅下面带有标记行的代码。


我有下面的代码在单击 LinkBut​​ton 后显示模式框。而且,我想要做的是如何分配 Textbox 的值。

我有一个网格视图:

<asp:GridView ID="GV1" runat="server" DataSourceID="DS1" >
  <Columns>
    <asp:BoundField HeaderText="ID" DataField="ID"/>
    <asp:TemplateField ShowHeader="False">
      <ItemTemplate>
        <asp:LinkButton ID="Edit_Linkbutton" runat="server" CausesValidation="False" >
          <asp:Image ID="Edit_Linkbutton_Image" runat="server" ImageUrl="~/edit.png"></asp:Image>
        </asp:LinkButton>
      </ItemTemplate>
    </asp:TemplateField>
  </Columns>
</asp:GridView>

在同一页面上(这是一个 div 作为模式框,在单击 Gridview 上的链接按钮后显示):

<div id="dialog-form" title="Modal Box">
    <input type="text" id="Textbox1" />

    #--------------------------------------------------------------------#
    #This button didn't get fired while clicked
    <asp:Button ID="Save_Button" runat="server" Text="Save"></asp:Button>
    #--------------------------------------------------------------------#

</div>

然后我通过代码隐藏将 Javascript 函数附加到 LinkBut​​ton:

Dim myLinkButton As LinkButton

For i As Integer = 0 To GV1.Rows.Count - 1
  myLinkButton = DirectCast(GV1.Rows(i).Cells(1).FindControl("LinkButton"), LinkButton)
  myLinkButton.Attributes.Add("onclick", "shopModalPopup('" + .Rows(i).Cells(0).Text & "'); return false;")
Next

Rows(i).Cells(0)是 Gridview 上的第一列,它是“ ID”。

Javascript 代码与 Gridview 代码在同一页面上:

<script>
function shopModalPopup(id){
//show the modal-box
    $("#dialog-form").dialog("open");
    // ---> How to assign the 'id' value to the Textbox1 on the modalbox?
} 

$(function () {
    $("#dialog-form").dialog({
        autoOpen: false,
        height: 300,
        width: 350,
        modal: true
    });
});
</script>

上面的代码确实打开了模态框,但没有将值分配给模态框上的 Textbox1。

我要问的是如何将Id值分配给Textbox1模态框上的?我尝试搜索任何相关文章,但他们确实将模态框分隔到另一页上。但在这种情况下,模态框与单击的链接按钮位于同一页面上。我怎样才能做到这一点?非常感谢你。

4

3 回答 3

1

你可以像这样绑定javascript事件......

<asp:LinkButton ID="LinkButton" runat="server" OnClientClick="SomeMethod();" />

您可以在代码中绑定javascript方法的其他方式,您可以在其中拥有更多控制权的示例是here

如果你将参数传递给你的 javascript 函数,例如你传递给 javascript 中的参数,那么你应该定义你的函数

function SomeFunction(arg1, arg2)
{

//your statements

}
于 2012-04-15T07:46:37.907 回答
1

未经测试,但应该可以工作。

我想你也可以避免使用内联js,只绑定buttonLink的点击事件

#dialog-form { display:none } /* CSS */

<script>  /* JS */
/* Assuming all dialogs share the same default Settings in this grid scenario */
var grid_modal_options = {
        height: 300,
        width: 350,
        modal: true
};
function shopModalPopup(id){
    var DataField = id;
    grid_modal_options.open = function(){
        $('#dialog-form #Textbox1').val( DataField );
        // OR
        // $('#dialog-form').find('textarea').val( DataField );
    };

    $("#dialog-form").dialog(grid_modal_options);
} 
</script>
于 2012-04-22T12:15:57.083 回答
1

如果您回发没有触发,则您的模态很可能不在您的表单中runat=server。我之前在使用 jQuery UI 对话框时遇到过这个问题。您需要将模式移回<form></form>标签内。

初始化模态后试试这个:

$("#dialog-form").parent().appendTo('form:first');

于 2012-04-23T00:17:37.453 回答